pyinstaller 打包pytorch环境 win10

文章目录

  • 前言
  • 一、pyinstaller安装
  • 二、打包
    • 1.使用conda加虚拟环境进行打包(fail)
    • 2.使用pip安装并打包(succeed)
  • 总结


前言

将pytorch的环境打包到一个exe里,使其不依赖虚拟环境和其他配置包等,非常的好用。。

记录一下踩坑
有问题可以留言,互相交流一下。。网上资料也不多= =

一、pyinstaller安装

pip install pyinstaller

pyinstaller 打包pytorch环境 win10_第1张图片

根据需要使用相应的参数,安装非常的简单- -不会遇到什么问题。

By The Way:使用-F的时候程序会运行的比较慢,但是空间占用会比-D的小,-D比较快但是会产生一个目录,不够简洁,还比较大。
-F参数能不用就尽量不用,打包一时爽,打开花5秒,,hhh

二、打包

1.使用conda加虚拟环境进行打包(fail)

https://github.com/pyinstaller/pyinstaller/issues/5397
遇到了上面一摸一样的问题,可以看看0.0
可能是conda版本太高,或者其他原因,反正没成功。但是也有人成功了

2.使用pip安装并打包(succeed)

用pip安装所有依赖的包,不使用虚拟环境,进行打包可以成功。

出现WARNING: file already exists but should not: C:\Users\workAI\AppData\Local\Temp

找到.spec配置文件修改配置文件,在配置文件中加入以下代码:

for d in a.datas:
	if '_C.cp37-win_amd64.pyd' in d[0]:
		a.datas.remove(d)
		break

如果打包后的exe文件打开一闪而过,出现了问题,需要看是什么问题可以使用cmd去运行exe

多线程问题:
在 if name == ‘main’:的方法下面添加

import multiprocessing
multiprocessing.freeze_support()

no model 问题:
关于动态加载的module导入问题
pyinstaller打包是无法找到这些模块的,在使用时就会报"ImportError 找不到指定模块",这个时候就需要手动导入动态加载的模块。

hiddenimports=['a.a']

总结

感觉挺顺利的,主要是被conda坑了很久。
另外打包的时候会自己把cuda的那些依赖打包进去挺牛逼的- -,测试过只需要显卡驱动就能运行exe了。。非常的慢就是了。

你可能感兴趣的:(python,exe,windows,10,pytorch)