python——pyinstaller生成exe基本使用和遇到的坑


1、安裝

pip install pyinstaller

2、常規操作

在cmd界面(之前安裝python或者anaconda的時候正確添加環境變量的話,是可以在cmd界面直接執行pyinstaller的)

pyintaller [選項] py文件路徑

選項:

-F 生成單個可執行文件,而不是生成一個文件夾,里面都是dll文件

-w 去掉控制台窗口,如果是自己寫的GUI程序,一般都要用這個,但如果是命令行程序,千萬別用這個呀。

-p 你自己自定義需要加載的類路徑,如果正確添加環境變量的話,這個是不需要的。

-i 指定可執行文件的圖標,后面跟ico文件的路徑即可

示例:

pyinstaller -F a.py

3、坑1

Cannot find existing PyQt5 plugin directories 
Paths checked: C:/Users/ray/qtb-3.5-64/_b_env/Library/plugins 

這個。。。原因我是感覺很迷。

受到大佬啟發:https://blog.csdn.net/weixin_43116379/article/details/82316163

將pyqt5.dll和pyqt5qmlplugin.dll復制到報錯的路徑。雖然很迷為什么,但是確實解決了問題。(用資源管理器自帶的搜索功能搜這兩個文件)

 

 4、坑2

 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 110: invalid continuation byte

這個還是因為C語言(一般Python的底層是C)對中文的支持不太好。有些漢字無法正常編碼。

受到大佬啟發 https://blog.csdn.net/qq_41185868/article/details/80599390

1、刪除所有中文注釋

  (程序里面的中文可以不刪,親測用下面的方法可以正常生成exe文件)

2、先在cmd界面中輸入 chcp 65001,將控制台編碼改成‘utf-8’,再直接使用pyinstaller -F a.py打包即可。

親測可用,感謝大佬!

 

 

最終正常生成了exe文件,並且能正常運行。

 

不過在這我要吐槽。用了pandas,requests,re這些模塊之后。。。生成的exe文件竟然這么大。據說它是把所有庫都編譯了一遍加到exe文件里了。

所以以后開發,能值引入函數的就只引入函數,盡量不要把整個庫都引入。

 


免責聲明!

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



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