python 出錯日誌

出問題的地方太多了,要是每個類型寫一篇感覺要寫好多篇。

索性先放到同一篇文章中吧。

目前在做的事情,把一個python程序打包成exe,可以在其他電腦上運行。

遇到了各種各樣的問題,已經摺磨瘋了。。。

一開始exe是可以在自己的電腦(win10)以及其他的win10上面跑,拿到終究要用的win7上顯示如下:

後來經過一番折騰,包括將pyinstaller的版本降到3.1,setuptools降到19.2,python版本降到3.5(因爲看有人說3.6和pyinstaller3.1不兼容)。最後成功把我的pycharm和anaconda搞死了(微笑臉)。折騰了一天終於以並不理直氣壯地方式打開了我的anaconda和pycharm(中間包括n次重裝)。

6.9

1. 試圖在重新安裝的anaconda和pycharm下跑程序。

報錯:

參考鏈接:https://github.com/pandas-dev/pandas/issues/21106

應該是pandas版本不合適。

參考以下方法:

目前的pandas版本是1.0.3,以防其他包不兼容,我沒有直接安裝0.22版本,而是安裝了1.0.0. 解決了問題。

2. 用pyinstaller tester.py 打包

報錯:

解決方案:在dist同層找到tester.spec文件,打開,找到hiddenimports=[],把上面的缺失的'pkg_resources.py2_warn'加到[]裏,hiddenimports=['pkg_resources.py2_warn'],保存spec。

然後運行pyinstaller tester.spec就可以啦(這個問題遇到不止一次我已經記住了。。。)

現在在我的電腦可以運行了。

只拿exe放到一個共享盤,雖然還是我的電腦,但是不能運行。雙擊exe閃退。

在conda運行查看錯誤,顯示:

參考https://shanetully.com/2013/08/cross-platform-deployment-of-python-applications-with-pyinstaller/ 這裏面講要修改specfile,於是在spec中添加以下語句,重新跑pyinstaller tester.spec

a.binaries + [('msvcp100.dll', 'C:\\Windows\\System32\\msvcp100.dll', 'BINARY'),
              ('msvcr100.dll', 'C:\\Windows\\System32\\msvcr100.dll', 'BINARY')]
if sys.platform == 'win32' else a.binaries,

結果還是不能在其他盤中運行,還是打不開。

 

關於error loading python37.dll的問題,網上找到的方法:

1:adding --upx-exclude=vcruntime140.dll option.(無用)

2. 在spec文件的pathex字段中,添加python37.dll的文件路徑(無用)

3. change upx = False(無用)

4. running it with - F option to create just a stand-alone exe file, Something like, pyinstaller -F main.py

5. Try to install this: https://www.microsoft.com/en-US/download/details.aspx?id=48145( install vc_redist.x64 , 但是我已經安裝,所以不是這個問題)

6. pyinstaller --upx-exclude=vcruntime140.dll --onefile --windowed tester.py(特別慢,試了兩次始終在等,感覺卡住了,放棄)

7. 參考鏈接:https://python-forum.io/Thread-Fail-from-py-to-exe(待試)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章