用pyinstaller打包Python失败,pyinstaller打包失败
Pytorch在python中应用广泛,打包容易失败。主要介绍Pyinstaller在打包Pytorch框架时遇到的问题,非常详细,有一定的参考价值。感兴趣的朋友可以参考一下。
00-1010前言基本流程1。安装Pyinstaller并测试Hello World 2。打包整个项目,在本机调试生成exe 3。在新电脑上测试参考资料。
目录
第一次尝试用Pyinstaller打包Pytorch,遇到了很多问题,花了很多时间!我想把这个过程中遇到的问题和解决方法记录下来,方便后来者。
前言
使用Pyinstaller的打包过程可以分为以下三个步骤:
安装Pyinstaller,写一个Hello world包测试,打包整个项目,在本机调试生成exe,将exe复制到新电脑,测试调试。
基本流程
使用Pycharm打开项目,单击Terminal,然后输入以下命令:
安装pyinstaller
请确保Terminal的路径是项目的根目录,以免后续打包过程中找不到某些模块。图中的红框(pytorch)是我的项目需要的虚拟环境。
编写Hello World测试并创建一个新测试。py:
if __name__==__main__:
print(Hello World!)
而True:
及格
在终端中输入以下命令以打包test.py:
pyinstaller -F测试. py
进入并开始打包!在文件夹dist中找到test.exe程序,运行测试,没有错误表明Pyinstaller安装成功。
一、安装Pyinstaller 和 测试Hello World
实际项目通常是多文件的,打包过程比Hello World复杂很多。包装项目有两个核心点:
配置.spec文件以完成依赖项.有关的详细信息,请参见参考链接1。spec文件配置,这里不再赘述。需要注意的是,在测试阶段,包要设置为-D模式,方便完成dll。本文主要研究dll及其依赖关系的完成。首先,安装必要的工具依赖项。通过这个工具,我们可以得到。dll文件。运行打包的exe时经常会遇到以下问题:3360
这说明我们的系统缺少caffe2_nvrtc.dll或者其对应的依赖关系。
首先去相应的路径看看caffe2_nvrtc.dll是否存在。如果不存在,直接在Anaconda配置环境的文件夹里搜索,一般都能找到。将找到的caffe2_nvrtc.dll复制并粘贴到根目录.如果它存在,这意味着在caffe2_nvrtc.dll.缺少依赖项使用Dependencies工具检查所需的依赖项,然后填充它们。在根目录.使用依赖关系非常简单,只需拖动。dll到它里面。以torch_python.dll为例。
可以发现少了几个dll文件,补一下就好了。通过以上方法,基本可以解决dll报错的问题。
但是每次重新打包后,手动复制粘贴dll文件是非常麻烦的。正在配置。规格文件可以简化操作。打开。在记事本中指定并查找数据:
括号中有两条路径。第一个路径“kernel32.dll”表示原始数据路径和存储kernel32.dll的路径。第二个路径是“.”,它指示目标路径和打包后存储原始数据的路径。意思是把第一条路径里的东西打包,放到第二条路径上。应该注意,我在这里设置了一个相对路径,与。规格。
二、打包整个项目,在本机上调试生成exe
我用的是pytorch的GPU版本。在新电脑上运行会报告以下错误,应该是因为缺少cuda库。
我的解决方法简单粗暴,直接把cuda包复制到移动硬盘。
每次你去一台新的计算机,添加cuda到环境变量。
建议在程序中设置一个附加选项,将网络切换到CPU推理,这样在测试其他电脑时,即使环境配置不成功,也可以通过CPU推理验证打包成功。最后祝大家好运。包装成功是一大乐事!
三、在新电脑上测试
Python项目(不是单一的。py文件)由Pyinstaller打包并发布为exe。在windos上运行程序分享pyinstaller打包的经验和一些错误的解决方法~ ~依赖项安装链接在这里。本文介绍Pyinstaller在打包Pytorch框架时遇到的问题。更多相关Pyinstaller包Pytorch内容,请搜索热门IT软件开发工作室以前的文章或继续浏览下面的相关文章。希望你以后能支持风行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。