Python各種擴展名(py, pyc, pyw, pyo, pyd)區別


擴展名

在寫Python程序時我們常見的擴展名是py, pyc,其實還有其他幾種擴展名。下面是幾種擴展名的用法。

py

py就是最基本的源碼擴展名

pyw

pyw是另一種源碼擴展名,跟py唯一的區別是在windows下雙擊pyw擴展名的源碼會調用pythonw.exe執行源碼,這種執行方式不會有命令行窗口。主要用於GUI程序發布時不需要看到控制台信息的情況。

pyc

在執行python代碼時經常會看到同目錄下自動生成同名的pyc文件。這是python源碼編譯后的字節碼,一般會在代碼執行時自動生成你代碼中引用的py文件的pyc文件。這個文件可以直接執行,用文本編輯器打開也看不到源碼。

pyo

pyo是跟pyc類似的優化編碼后的文件。

pyd

pyd並非從python程序生成,而是其他語言寫成的可以被python調用的擴展,例如C++寫的動態連接庫共python調用

程序發布的選擇

以windows平台為例

打包為正常可執行程序

如果要公開發布程序,最常見的方式就是打包成exe程序了。打包的好處是使用者不需要考慮Python的運行環境,且也容易被接受。但不好的是一般打包出來的程序都比較大,而且由於是依靠模塊打包,有可能出現兼容性等問題。

常用的打包模塊是pyinstaller。常用的打包命令是:

pyinstaller -F example.py

 

 

-F參數可將代碼打包成單個exe程序。

另外如果是GUI程序不需要控制台窗口的還可以加上-w參數:

pyinstaller -w -F example.py

 

 

發布編譯后的pyc/pyo

如果使用者有python環境,又不想讓他們看到源碼,就可以選擇發布pyc/pyo文件。

直接執行的py文件不會自動生成pyc,需要手動編譯一下。單文件編譯:

import py_compile
py_compile.compile(r'c:\test.py')

 

 

文件夾編譯:

import compileall
compileall.compile_dir(dirpath)

 

編譯成pyo:

python -O -m py_compile file.py

 

如果是GUI程序不需要控制台窗口,可以新建一個pyw文件用於調用主pyc程序。pyw中只需要導入pyc程序即可。

發布源碼py

發布源碼一般是開源項目使用的,沒什么需要說明的。直接發py文件就可以了,只要對方有環境就可以運行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM