Python文件打包的兩種方法
##背景:最近用Pyqt5編寫界面后考慮到一些用戶沒有程序的運行環(huán)境,故而需要打包為exe程序提供給用戶使用,在經(jīng)過一番資料的查詢以及踩坑后,寫下了這篇博客,目前主要有兩種主流的方法。分別是使用Pyinstaller與Nuitka進行打包。下面分享一下兩種方法的具體使用與心得。(主要是Nuitka)
方法一:使用Pyinstaller進行打包
使用Pyinstaller打包,首先命令是非常簡單的,但相應(yīng)的是對于報錯信息也不是很清楚(可能是本人太菜了,大佬可以忽略),同時打包時間也相對來說比較長。由于編寫的程序涉及了比較多的文件以及引用了多個模塊(如torch,numpy,cv2等),在報錯信息看不懂的情況下加之網(wǎng)上的解決辦法也魚龍混雜(解決不了),故而尋找其他的打包辦法,最后看到一些人推薦的Nuitka,抱著試一試的心態(tài)嘗試使用了一下,發(fā)現(xiàn)確實好用,下面我詳細介紹一下如何使用。文章來源:http://www.zghlxwxcb.cn/news/detail-603464.html
方法二:使用Nuitka進行打包
首先需要安裝Nuitka打包的環(huán)境:
1、安裝MinGW64
可以通過gcc.exe --version查看是否安裝成功以及安裝的版本(記得查看是在MinGW\bin的目錄下),記得安裝成功后加入到系統(tǒng)的環(huán)境變量中。
2、安裝Nuitka
直接使用pip命令pip install nuitka
3、編譯文件
首先需要在需要打包的文件目錄下進行,命令如下:nuitka --mingw64 --standalone --windows-disable-console --show-progress --show-memory –
enable-plugin=pyqt5 --nofollow-import-to=torchvision,torch,cv2,numpy,matplotlib,PIL
–output-dir=out
–windows-icon-from-ico=./logo.ico main.py
下面詳細介紹一下參數(shù):
–mingw64:指定編譯器;
–standalone:指定獨立環(huán)境,這是程序能夠給別人使用必須指定的
–windows-disable-console :設(shè)置不要控制臺窗口
–show-progress: 顯示編譯的進度,即編譯過程中下面的XX/XX。
–show-memory:顯示內(nèi)存的占用
–enable-plugin=pyqt5:因為使用了Pyqt5,所以在這里指定
–nofollow-import-to=torchvision,torch,cv2,numpy,matplotlib,PIL :這是重點,這是指定哪些模塊不需要編譯,這些模塊是python系統(tǒng)的,可以讓打包好的exe文件夾內(nèi)的python3x.dll來執(zhí)行,同時也省去了這些模塊版本變化遇到的問題,如何知道哪些模塊是系統(tǒng)的(可以在執(zhí)行打包命令的時候觀察最下面的進度)
–output-dir=out :指定輸出文件夾
-windows-icon-from-ico=./logo.ico :指定程序圖標(biāo)
main.py 自己編寫的執(zhí)行程序
在打包完成后,不是有部分Python系統(tǒng)的模塊沒有打包嗎,這時候只需要在Python文件夾里找到復(fù)制過來就行了,最后就能運行得到的exe文件了。文章來源地址http://www.zghlxwxcb.cn/news/detail-603464.html
如有侵權(quán),聯(lián)系立刪。
到了這里,關(guān)于Python文件打包(pyinstaller,nuitka)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!