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
  
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
  
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修改资源文件存放位置:

pytorch-python源码生成windows的应用程序(.exe),报错OSError: could not get source code Failed to execute script_第1张图片

并配合代码修改文件路径:

你可能感兴趣的:(其他)