用PyQt5和QtDesigner寫了個界面化的程序給別人用,同時還涉及到操作excel表格,最后需要打包給那個人用。
最開始的環境是:Anaconda3 +python3.6.13,以及通過pip安裝的pyqt5、openpyxl和pyinstaller。
本機寫好后無異常,但是通過pyinstaller打包時,不管是-F單獨exe文件還是-D單獨目錄模式,最后生成的exe文件都無法啟動。
也嘗試了把PyQt5等第三方庫放到自己的py文件目錄里,但是還是不行,原理上來說,pyinstaller本身就會將所有第三方庫打包,也根本不用這么操作。
最后,被這篇文章最后的總結啟發:https://zhuanlan.zhihu.com/p/57435892
環境很重要!
因為我一開始的代碼編寫和打包過程,都是在Anaconda3的虛擬環境中進行的,我嘗試了下把打包后的exe文件通過Anaconda3的虛擬python環境運行,結果是可以運行的!
所以,當我想在windows本身的環境中運行虛擬環境打包的exe文件,自然是不能成功了,大概率是因為一些依賴路徑的錯誤。
所以,解決方法就呼之欲出了。
在windows本身環境中,直接安裝python,運行下看看代碼能不能運行;然后,也在windows原生cmd中用pyinstaller進行打包操作。這樣一來得到的exe文件就能在本機原生cmd環境和他人的機器上運行了。