用pyinstaller打包tensorflow深度学习程序 填坑笔记

1.安装pyinstaller

要用pyinstaller将python程序打包成可运行的exe程序首先需要安装pyinstaller

pip install pyinstaller

然后,打包的代码为

pyinstaller ./aaa.py 

以上这个是生成文件夹模式,在pyinstall后面加个-F是生成单文件

2.打包错误:ModuleNotFoundError: No module named 'setuptools._vendor'

更新 setuptools

pip install --upgrade setuptools

3.打包错误:AttributeError: module 'enum' has no attribute 'IntFlag'

卸载enum34包

pip uninstall enum34

4.运行错误:ImportError:No Module Nameed "pywt._extensions._cwt"

注意,以上的pywt._extensions._cwt可能是其他库

解决办法:

pyinstaller -F aaa.py --hidden-import pywt._extensions._cwt 

如果有多个库那就在在后面在加几个--hidden-import xxxx

5.运行错误:ModuleNotFoundError: No module named 'tensorflow.python._pywrap_tensorflow_internal'

使用tensorflow1.7以上版本会有这个问题

解决方法:

假如是文件夹生成模式生成的,比较简单,在生成的dist/[exe_name]/文件夹中,找到“_pywrap_tensorflow_internal.pyd”文件,剪切,在这个文件夹中新建一个tensorflow文件夹,并在tensorflow文件夹中新建一个python文件夹,将刚刚剪切的pyd文件黏贴到python文件夹中,再次运行exe,问题解决。

假如是单文件exe模式,可用以下方法,首先在python库文件夹中找到_pywrap_tensorflow_internal.pyd(懒得找就用文件夹模式生成一次,在exe所在的文件夹中就有),然后使用以下命令生成。

pyinstaller -F aaa.py --add-data="/path/to/the/pyd/_pywrap_tensorflow_internal.pyd;tensorflow/python"

问题解决。

参考:
[1] https://blog.csdn.net/qq_39360343/article/details/82772916 setuptools问题
[2] https://blog.csdn.net/qq_15969343/article/details/84872743 enum问题
[3] https://blog.csdn.net/qq_40587575/article/details/86500445 pywt问题
[4] https://stackoverflow.com/questions/49620638/tensorflow-gpu-with-pyinstaller "_pywrap_tensorflow_internal"问题
[5] https://stackoverflow.com/questions/49732801/windows-10-pyinstaller-tensorflow-missing-modules?r=SearchResults 单文件"_pywrap_tensorflow_internal"问题

你可能感兴趣的:(用pyinstaller打包tensorflow深度学习程序 填坑笔记)