(转发的(原文链接https://blog.csdn.net/qq_35756383/article/details/110850920),自己试过了,这个方法可以用,这个打包之前弄了好久总是出问题。)
因为打包后的exe文件是包含了所有环境配置的,接收到文件的客户端无需下载环境依赖,直接运行即可。因此为了使exe文件尽可能的小,需要在干净的虚拟环境中打包。
虚拟环境可用anaconda、virtualenv等,也可直接在pycharm中新建虚拟环境,在此不做赘述。
安装pyinstaller
在虚拟环境下运行下列命令即可:
-
pip install pywin32-ctypes
-
pip install PyInstaller
-
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz
打包程序
在打包前确保你的整个程序代码只需要运行一个python文件即可调用,并对该python文件进行打包:(这个步骤可以查看pyinstaller,更多参数的含义)
pyinstaller -F -w xx.py,-F 选项指定生成单个的可执行程序,-w 选项指定生成图形用户界面程序(不需要命令行界面)。
pyinstaller -F xx.py
会生成dist/build/xx.spec3个新文件,dist目录下的exe即为打包后的exe文件:
将xx.spec和build文件都删除,把dist下的xx.exe放到与xx.py同级目录下。
拷贝整个工程代码文件到其他机器上,双击exe文件即可运行。(这里把这个exe拿出来放在任意位置双击就可以运行了,好像是打包时候把这些依赖项都打包进去了,最后的exe文件特别大。)
关于这个打包问题:
1、自己打包的cpu环境相对容易打包,并且放在其他电脑(没有配置过深度学习环境)上也可以运行,就是预测速度很慢。
2、GPU环境的话,目前在自己电脑上可以,还没试那些没有环境的电脑,估计是不太行的。