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

擴展名

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

py

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

pyw

pyw是另外一種源碼擴展名,跟py惟一的區別是在windows下雙擊pyw擴展名的源碼會調用pythonw.exe執行源碼,這種執行方式不會有命令行窗口。主要用於GUI程序發佈時不須要看到控制檯信息的狀況。編輯器

pyc

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

pyo

pyo是跟pyc相似的優化編碼後的文件。編碼

pyd

pyd並不是從python程序生成,而是其餘語言寫成的能夠被python調用的擴展,例如C++寫的動態鏈接庫共python調用spa

程序發佈的選擇

以windows平臺爲例命令行

打包爲正常可執行程序

若是要公開發布程序,最多見的方式就是打包成exe程序了。打包的好處是使用者不須要考慮Python的運行環境,且也容易被接受。但很差的是通常打包出來的程序都比較大,並且因爲是依靠模塊打包,有可能出現兼容性等問題。code

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

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文件就能夠了,只要對方有環境就能夠運行。

相關文章
相關標籤/搜索