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
㈡ python的腳本文件的擴展名是pyd
擴展名說明
1、通常寫Python腳本都是以.py為擴展名,.pyc二進制文件可以反編譯成.py文件。
2、反編譯軟體叫EasyPythonDecompiler,可以反編譯一個文件,也可以是一個文件夾。
㈢ Python3如何將py文件編譯為pyd文件
不想裝VS可以使用第三方庫nuitka,同時安裝mingw64
㈣ python程序文件test.py編譯後的文件名
python編譯可執行文件的擴展名
python程序的擴展名有.py、.pyc、.pyo和.pyd。.py是源文件,.pyc是源文件編譯後的文件,.pyo是源文件優化編譯後的文件,.pyd是其他語言寫的python庫。 擴展名 在寫Python程序時我們常見的擴展名是py, pyc,其實還有其他幾種擴展名。下面是幾種擴展名的用法。 py:py就是最基本的源碼擴展名。windows下直接雙擊運行會調用python.exe執行。 pyw:pyw是另一種源碼擴展名,跟py唯一的區別是在windows下雙擊pyw擴展名的源碼會調用pythonw.exe執行源碼,這種執行方式不會有命令行窗口。主要用於GUI程序發布時不需要看到控制台信息的情況。 pyc:在執行python代碼時經常會看到同目錄下自動生成同名的pyc文件。這是python源碼編譯後的位元組碼,一般會在代碼執行時自動生成你代碼中引用的py文件的pyc文件。這個文件可以直接執行,用文本編輯器打開也看不到源碼。 pyo:pyo是跟pyc類似的優化編碼後的文件。 pyd:pyd並非從python程序生成,而是其他語言寫成的可以被python調用的擴展。
㈤ 如何在Python中實現多文件編譯
如果你要用到那個文件代碼,就在主文件里寫上import
舉個例子
A.py
B.py
我的主模塊在A里,A要調用B里的函數或者類,那麼在A中寫import B.py
這樣編譯時就會編譯用到B中的部分代碼。
另外說一句,我對python感覺是運行時用不到的代碼,它就不編譯。好像是編編譯邊執行的那種吧
㈥ python文件後綴是什麼
python文件後綴總結:
(1).py:這通常是您編寫的輸入源代碼。
(2).py3:Python3腳本(Python3腳本通常以.py而不是.py3結尾,很少使用)。
(3).pyc:這是編譯好的位元組碼。如果導入一個模塊,python將生成一個*.pyc包含位元組碼的文件,以便再次導入它更容易(也更快)。
.pyc二進制文件可以反編譯成.py文件,反編譯軟體叫Easy Python Decompiler。
(4).pyo:這是在優化(-O)時創建的*.pyc文件,從Python3.5開始,Python將只使用.pyc而不是.pyo和.pyc。
(5).pyd:這基本上是一個Windows DLL文件。
(6).pyi:MyPy存根,存根文件(PEP 484)。
(7).pyw:用pythonw.exe執行的Windows的Python腳本。
(8).pyx:將Cython src轉換為C/C++。
(9).pyz:Python腳本歸檔(PEP 441)(這是一個包含標准Python腳本頭之後的二進制形式的壓縮Python腳本(ZIP)的腳本)。
(10).pywz:用於MS-Windows的Python腳本歸檔(PEP 441)(這是一個包含標准Python腳本頭之後的二進制形式的壓縮 Python腳本(ZIP)的腳本)。
(11).py [cod]:.gitignore中的通配符表示該文件可能是.pyc,.pyo或.pyd。
(12).rpy:包含應用程序或框架特定功能的RPython腳本或Python腳本。
(13).pyde:處理使用的Python腳本。
(14).pyp:Py4D Python插件。
(15).pyt:Python聲明文件。
眾多python培訓視頻,盡在python學習網,歡迎在線學習!
㈦ Python 怎麼調用 pyd文件
python文件名.py就可以了。
就這樣,Python在Guido手中誕生了。可以說,Python是從ABC發展起來,主要受到了Mola-3(另一種相當優美且強大的語言,為小型團體所設計的)的影響。並且結合了Unixshell和C的習慣。
Python已經成為最受歡迎的程序設計語言之一。自從2004年以後,python的使用率呈線性增長。Python2於2000年10月16日發布,穩定版本是Python2.7。Python3於2008年12月3日發布,不完全兼容Python2。2011年1月,它被TIOBE編程語言排行榜評為2010年度語言。