1. 程式人生 > >Python 程式副檔名(py, pyc, pyw, pyo, pyd)及釋出程式時的選擇

Python 程式副檔名(py, pyc, pyw, pyo, pyd)及釋出程式時的選擇

副檔名

在寫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呼叫的擴充套件。

程式釋出的選擇

由於筆者基本只在windows平臺下考慮釋出問題,其他平臺均使用原始碼,故此處討論基本圍繞windows平臺。

打包為正常exe程式

如果要公開發布程式,最常見的方式就是打包成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檔案就可以了,只要對方有環境就可以執行。

參考資料:

--------------------- 本文來自 司開星 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/chroming/article/details/52083387?utm_source=copy