pytorch-python源碼生成windows的應用程序(.exe),報錯OSError: could not get source code Failed to execute script

在windows10上面搭建了一個深度神經網絡,編程語言python3.6,使用pytorch框架。
所有代碼在源碼階段都是用命令行進行編譯驗證。
程序要用的時候是在一個windows平臺,因此,還要生成一個windows的應用程序(.exe)。

嘗試方法一、直接應用命令行,使用工具pyinstaller,失敗!
這個方式網上隨手找來的,可以生成exe應用程序,不能運行。

嘗試方法二、利用IDE導出,結果失敗!
在網上查到可以用pyinstaller工具,通過命令編譯生成windows應用程序。嘗試出來的exe不能執行。
乾脆別自己手動生成了,還是用IDE吧?通常使用linux開發,沒怎麼用過python的IDE,就採用了常聽大家提到的pyCharm,經過一頓配置操作,驚奇的發現,pyCharm沒有想VS等windowsIDE那樣,直接發佈或導出應用程序,也要在終端通過pyinstaller命令進行應用程序生成。

會不會在pyCharm內使用pyinstaller能較好的連接各個文件,生成應用呢?嘗試繼續失敗。
報錯類似:
File "site-packages\torchvision\ops\misc.py", line 135, in <module>
  
File "site-packages\torchvision\ops\misc.py", line 148, in FrozenBatchNorm2d
  
File "site-packages\torch\jit\__init__.py", line 1204, in script_method
  
File "site-packages\torch\jit\frontend.py", line 156, in get_jit_def
File "inspect.py", line 955, in getsourcelines
  
File "inspect.py", line 786, in findsource

OSError: could not get source code
[16696] 
Failed to execute script VehicleDC

嘗試方法三、小工具auto-py-to-exe,先失敗後成功!
經過一頓檢索,發現一個小工具auto-py-to-exe。這個工具其實只是幫你鏈接資源,最後還是通過pyinstaller的工具生成應用程序。
安裝工具後,命令行啓動,加載主程序文件,關鍵是設置好資源文件的文件位置(具體使用過參考youtube視頻),它會根據工具界面中的設置生成對應的命令,最後執行。

一開始還是失敗!
類似上面的報錯:
File "site-packages\torchvision\ops\misc.py", line 135, in <module>
  
File "site-packages\torchvision\ops\misc.py", line 148, in FrozenBatchNorm2d
  
File "site-packages\torch\jit\__init__.py", line 1204, in script_method
  
File "site-packages\torch\jit\frontend.py", line 156, in get_jit_def
File "inspect.py", line 955, in getsourcelines
  
File "inspect.py", line 786, in findsource

OSError: could not get source code
[16696] 
Failed to execute script VehicleDC


又是一頓檢索,還是用上面的小工具auto-py-to-exe,保持上面鏈接資源文件的設置,修改掉torchvision的版本就解決了,解決辦法鏈接:
https://stackoverflow.com/questions/56325181/pyinstaller-executable-fails-importing-torchvision 

Downgrade torchvision to the previous version fix the error.
pip uninstall torchvision
pip install torchvision==0.2.2.post3

最終搞定!

總之,如下操作搞定python代碼生產.exe應用程序:
1.修改torchvision版本,方法:
pip uninstall torchvision #卸載了0.4版本
pip install torchvision==0.2.2.post3 #安裝0.2版本

2.使用auto-py-to-exe工具
着重配置auto-py-to-exe修改資源文件存放位置:

並配合代碼修改文件路徑:

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