Python各種擴(kuò)展名區(qū)別點(diǎn)整理
擴(kuò)展名
在寫(xiě)Python程序時(shí)我們常見(jiàn)的擴(kuò)展名是py, pyc,其實(shí)還有其他幾種擴(kuò)展名。下面是幾種擴(kuò)展名的用法。
py
py就是最基本的源碼擴(kuò)展名
pyw
pyw是另一種源碼擴(kuò)展名,跟py唯一的區(qū)別是在windows下雙擊pyw擴(kuò)展名的源碼會(huì)調(diào)用pythonw.exe執(zhí)行源碼,這種執(zhí)行方式不會(huì)有命令行窗口。主要用于GUI程序發(fā)布時(shí)不需要看到控制臺(tái)信息的情況。
pyc
在執(zhí)行python代碼時(shí)經(jīng)常會(huì)看到同目錄下自動(dòng)生成同名的pyc文件。這是python源碼編譯后的字節(jié)碼,一般會(huì)在代碼執(zhí)行時(shí)自動(dòng)生成你代碼中引用的py文件的pyc文件。這個(gè)文件可以直接執(zhí)行,用文本編輯器打開(kāi)也看不到源碼。
pyo
pyo是跟pyc類似的優(yōu)化編碼后的文件。
pyd
pyd并非從python程序生成,而是其他語(yǔ)言寫(xiě)成的可以被python調(diào)用的擴(kuò)展,例如C++寫(xiě)的動(dòng)態(tài)連接庫(kù)共python調(diào)用
程序發(fā)布的選擇
以windows平臺(tái)為例
打包為正常可執(zhí)行程序
如果要公開(kāi)發(fā)布程序,最常見(jiàn)的方式就是打包成exe程序了。打包的好處是使用者不需要考慮Python的運(yùn)行環(huán)境,且也容易被接
受。但不好的是一般打包出來(lái)的程序都比較大,而且由于是依靠模塊打包,有可能出現(xiàn)兼容性等問(wèn)題。
常用的打包模塊是pyinstaller。常用的打包命令是:
pyinstaller -F example.py
-F參數(shù)可將代碼打包成單個(gè)exe程序。
另外如果是GUI程序不需要控制臺(tái)窗口的還可以加上-w參數(shù):
pyinstaller -w -F example.py
發(fā)布編譯后的pyc/pyo
如果使用者有python環(huán)境,又不想讓他們看到源碼,就可以選擇發(fā)布pyc/pyo文件。
直接執(zhí)行的py文件不會(huì)自動(dòng)生成pyc,需要手動(dòng)編譯一下。單文件編譯:
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程序不需要控制臺(tái)窗口,可以新建一個(gè)pyw文件用于調(diào)用主pyc程序。pyw中只需要導(dǎo)入pyc程序即可。
發(fā)布源碼py
發(fā)布源碼一般是開(kāi)源項(xiàng)目使用的,沒(méi)什么需要說(shuō)明的。直接發(fā)py文件就可以了,只要對(duì)方有環(huán)境就可以運(yùn)行
相關(guān)文章
Python實(shí)現(xiàn)的簡(jiǎn)單模板引擎功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的簡(jiǎn)單模板引擎功能,結(jié)合具體實(shí)例形式分析了Python模版引擎的定義與使用方法,需要的朋友可以參考下2017-09-09
python中關(guān)于os.path.pardir的一些坑
這篇文章主要介紹了python中關(guān)于os.path.pardir的一些坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
jupyter notebook 多環(huán)境conda kernel配置方式
這篇文章主要介紹了jupyter notebook 多環(huán)境conda kernel配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Python讀取Word文檔中的Excel嵌入文件的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python讀取Word文檔中的Excel嵌入文件的方法,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2022-12-12
Python用20行代碼實(shí)現(xiàn)完整郵件功能
這篇文章主要介紹了如何使用Python實(shí)現(xiàn)完整郵件功能的相關(guān)資料,需要的朋友可以參考下面文章內(nèi)容,希望能幫助到您2021-09-09
在雙python下設(shè)置python3為默認(rèn)的方法
這篇文章主要介紹了如何在雙python下設(shè)置python3為默認(rèn),本文通過(guò)一個(gè)例子分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10
Python的matplotlib繪圖如何修改背景顏色的實(shí)現(xiàn)
這篇文章主要介紹了Python的matplotlib繪圖如何修改背景顏色的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Python如何查看并打印matplotlib中所有的colormap(cmap)類型
這篇文章主要介紹了Python如何查看并打印matplotlib中所有的colormap(cmap)類型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

