1. python 反編譯 源碼還原py後,怎麼把它再編譯成pyc
不用編譯
Python每次執行的時候,都會檢查py是否有同名的pyc
如果沒有或者pyc比py生成時間更早,就會自動把py翻譯成位元組碼的pyc
然後由pyc解釋執行
2. 如何對python 進行重新編譯
Python是解釋型腳本語言,運行過程中是一句一句,邊解釋邊執行的,不需要編譯。修改之後的源代碼可以直接運行,如果擔心之前版本影響,可以刪除對應的pyc文件,不過只是解除心理作用而已。
3. python項目代碼變更後一定要重新編譯嗎
一般的時候,你直接用py文件執行就可以了,python會自動編譯一些必要的文件。
另外目前py不同的位元組碼是變動的,也就是說不同版本的位元組碼還是不兼容,做不動一次編譯到處執行。
如果你現在三個文件 main.py, a.py, b.py
其中main是入口,而且在main中有import a.py 和import b.py
那麼只會生成a.pyc,b.pyc,而不會生成main.pyc
出發你自己用python中的compile命令編譯main.py
以上
4. Python同一個程序只需一次編譯,即可重復執行
咨詢記錄 · 回答於2021-12-01
5. vscode怎麼編譯python
首先需要安裝VScode Python插件。打開Python任意腳本,可以直接拖入。
點擊左下角的擴展按鈕,在彈出界面選擇「顯示擴展建議」。
然後點擊第一個Python插件進行安裝。安裝需要幾分鍾。安裝完成後點擊重啟。
接下來我們點擊用戶設置菜單。這時候會打開兩個文件。
我們在左邊文件Ctrl+F搜索Python關鍵字,找到pythonPath所在行
把這行拷貝到右邊文件,修改Python所在路徑。注意斜杠的方向,刪除末尾逗號
保存文件。然後點擊左邊的資源管理器按鈕,重新切換到我們的程序文件。
Ctrl+shift+B運行程序。這時候提示需要在文件夾目錄下才能進行配置。於是我們點擊打開文件夾按鈕,打開程序所在文件夾。
Ctrl+shift+B運行程序。這時候會提示配置任務運行程序,點擊配置。選擇運行任意外部命令菜單。
在打開的tasks.json文件中,我們需要修改兩個內容,路徑和執行文件名。
好了,現在Python的代碼可以Ctrl+shift+B直接運行了。文中的設置部分代碼可以在文末下載。使用愉快。
6. python3.4 urllib.error.URLError: <urlopen error unknown url type:
你的http請求的鏈接有問題
鏈接是不是以協議的名稱(http:/ /)開頭
7. 什麼軟體可以編譯Python
實際上python 是腳本語言解釋執行的,並不存在編譯這個概念。
用
python -m py_compile file.py
python -m py_compile {file1,file2}.py
編譯成pyc文件。
pyc是一種二進制文件,是由py文件經過編譯後,生成的文件,是一種byte code,py文件變成pyc文件後,載入的速度有所提高,而且pyc是一種跨平台的位元組碼,是由python的虛擬機來執行的
用
python -O -m py_compile file.py
編譯成pyo文件。
pyo是優化編譯後的程序 python -O 源文件即可將源程序編譯為pyo文件
還有就是第三方工具如:py2exe, pyinstaller等可把你的腳本打包成執行文件。
1、下載pyinstaller
目前pyinstaller支持的python版本為2.3-2.7,可以到http://www.pyinstaller.org/官網下載。
2、安裝
下載完成後,解壓即可。
3、pyinstaller使用方法
使用也非常的簡單,cmd下進入解壓出來的目錄,執行如下命令。
python pyinstaller.py [opts] yourprogram.py
主要選項包括:
-F, –onefile 打包成一個exe文件。
-D, –onedir 創建一個目錄,包含exe文件,但會依賴很多文件(默認選項)。
-c, –console, –nowindowed 使用控制台,無界面(默認)
-w, –windowed, –noconsole 使用窗口,無控制台
更詳細的使用方法請參考下載包里的doc目錄下的Manual.html文件。
8. python的程序可以編譯成二進制可執行文件么
python下編譯py成pyc和pyo
其實很簡單,
用
python -m py_compile file.py
python -m py_compile /root/src/{file1,file2}.py
編譯成pyc文件。
也可以寫份腳本來做這事:
Code:
import py_compile
py_compile.compile('path') //path是包括.py文件名的路徑
用
python -O -m py_compile file.py
編譯成pyo文件。
1.其中的 -m 相當於腳本中的import,這里的-m py_compile 相當於上面的 import py_compile
2.-O 如果改成 -OO 則是刪除相應的 pyo文件,具體幫助可以在控制台輸入 python -h 查看
========================
from:http://blogold.chinaunix.net/u3/93255/showart_1944929.html
什麼是pyc文件
pyc是一種二進制文件,是由py文件經過編譯後,生成的文件,是一種byte code,py文件變成pyc文件後,載入的速度有所提高,而且pyc是一種跨平台的位元組碼,是由python的虛擬機來執行的,這個是類似於JAVA或者.NET的虛擬機的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc文件是不同的,2.5編譯的pyc文件,2.4版本的 python是無法執行的。
什麼是pyo文件
pyo是優化編譯後的程序 python -O 源文件即可將源程序編譯為pyo文件
什麼是pyd文件
pyd是python的動態鏈接庫。
為什麼需要pyc文件
這個需求太明顯了,因為py文件是可以直接看到源碼的,如果你是開發商業軟體的話,不可能把源碼也泄漏出去吧?所以就需要編譯為pyc後,再發布出去。當然,pyc文件也是可以反編譯的,不同版本編譯後的pyc文件是不同的,根據python源碼中提供的opcode,可以根據pyc文件反編譯出 py文件源碼,網上可以找到一個反編譯python2.3版本的pyc文件的工具,不過該工具從python2.4開始就要收費了,如果需要反編譯出新版本的pyc文件的話,就需要自己動手了(俺暫時還沒這能力^--^),不過你可以自己修改python的源代碼中的opcode文件,重新編譯 python,從而防止不法分子的破解。
生成單個pyc文件
python就是個好東西,它提供了內置的類庫來實現把py文件編譯為pyc文件,這個模塊就是 py_compile 模塊。
使用方法非常簡單,如下所示,直接在idle中,就可以把一個py文件編譯為pyc文件了。(假設在windows環境下)
import py_compile
py_compile.compile(r'H:\game\test.py')
compile函數原型:
compile(file[, cfile[, dfile[, doraise]]])
file 表示需要編譯的py文件的路徑
cfile 表示編譯後的pyc文件名稱和路徑,默認為直接在file文件名後加c 或者 o,o表示優化的位元組碼
from:http://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html
9. redhat 怎麼重新編譯python
下載新版本的python
1
[root@local_redhat ~]# wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz
解壓縮 以及編譯
01
[root@local_redhat ~]# tar xvf Python-2.7.2.tar.bz2
02
[root@local_redhat Python-2.7.2]# ./configure --prefix=/usr/local/python27
03
[root@local_redhat Python-2.7.2]# make
04
[root@local_redhat Python-2.7.2]# make install
05
[root@local_redhat Python-2.7.2]# ls /usr/local/python27/ -al
06
total 28
07
drwxr-xr-x 6 root root 4096 Jul 14 00:21 .
08
drwxr-xr-x 20 root root 4096 Jul 14 00:17 ..
09
drwxr-xr-x 2 root root 4096 Jul 14 00:21 bin
10
drwxr-xr-x 3 root root 4096 Jul 14 00:21 include
11
drwxr-xr-x 4 root root 4096 Jul 14 00:21 lib
12
drwxr-xr-x 3 root root 4096 Jul 14 00:21 share
覆蓋原來的python鏈接
1
[root@local_redhat Python-2.7.2]# mv /usr/bin/python /usr/bin/python_old
2
[root@local_redhat Python-2.7.2]# ln -s /usr/local/python27/bin/python /usr/bin/
3
[root@local_redhat Python-2.7.2]# python
4
Python 2.7.2 (default, Jul 14 2011, 00:20:14)
5
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
6
Type "help",
"right", "credits"
or "license"
for more information.
7
>>>
10. opensuse python怎麼重新編譯安裝
第一種方法是使用Opensuse官方地共的一站式升級按鈕: 首先,在開始升級之前打開一個終端 (你需要用這個終端來重啟系統以完成升級),並且關閉其他所有應用程序. 根基你的系統位來選擇點擊下面的一站式升級按鈕