windows环境下 Tensorflow 2.1.0 打包成 exe 可执行程序
程序员文章站
2022-05-27 17:06:18
...
windows环境下 Tensorflow 2.1.0 打包成 exe 可执行程序
项目需要将TensorFlow2.1.0 打包成exe 可执行程序。踩过的坑太多,这里简单记录一下,本文基于的OS环境是 windows7。
Step-1: 环境准备。
- 安装Anaconda:(熟悉python编程的同学应该不会陌生),这一步的目的是建立一个以python 3.7 为解析器的工作环境, 因为TF2.1.0 依赖Python3+工作。这部分工作,网上的资料非常多,请大家自行搜索,不再赘述。这里建议大家安装到其他盘符,而不是c盘,随着项目的进展,会占用越来越多的磁盘空间。
- 创建python 3.7工作环境:安装完Anaconda 后,通过【开始】>>> 【所有程序】>>> 【Anaconda3(64bit)】>>> 【Anaconda prompt(Anaconda3)】启动conda 终端,输入如下命令:
conda create -n your-env-name python=3.7.7
这里python的版本符合 TF2.1.0工作的最低要求就行。
- 配置pyinstaller【关键】:现在(2020/07/02)release的pyinstaller 版本为3.6,不符合TF2.1.0的打包要求,勉强能打包也是各种问题。所以,根据pyinstaller开发者提示,我们可以用pyinstaller的开发版本解决(4.0),具体办法,大家可以参考如下链接,自行编译安装pyinstaller4.0-Dev版本,很轻松就可以搞定,请参考如下 链接:编译安装pyinstaller4.0-dev
注意这里面的pyinstaller需要安装到大家刚刚创建Anacanda虚拟环境中。 - 安装pycharm:pycharm还是一款非常优秀的python开发工作软件,网上的资料也非常多,这里不再赘述。
- 配置pycharm:建立pycharm工程,导入项目代码后,就需要配置环境了,将刚创建的Anacanda环境设置为你工程工作的依赖环境。
6.安装TensorFlow 2.1.0:如上面的图片所示,还是建议大家在pycharm下安装TF包以及项目需要的依赖包。
【注意此处有坑】:
(1)一定要先安装 tensorflow-estimator== 2.1.0,conda终端下(请先切换到你所要工作的env)执行如下命令:
conda install tensorflow-estimator==2.1.0
(2)再安装tensorflow== 2.1.0:
conda install tensorflow==2.1.0
简单解释下,如果先按照tensorflow== 2.1.0, conda会默认安装tensorflow-estimator== 2.2.0作为 TF2.1.0的依赖包,而这个版本的tensorflow-estimator== 2.2.0 在exe环境下是不work的。
Step-2: 打包
1.准备spec:这里面的spec会import几个特殊的包,请大家注意hiddenimports字段。
# -*- mode: python -*-
block_cipher = None
a = Analysis(['easyai.py'],
pathex=['.'],
binaries=[],
datas=[],
hiddenimports=['pkg_resources.py2_warn','scipy.special','scipy.special.cython_special'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='easyAI',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True,
icon='icon_easyai.ico')
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='easyAI')
- 打包成exe:Anaconda终端或者pycharm终端输入如下命令:
打包的过程可能会有缺失依赖包的情况,大家自行安装就可以了,打包成功后会生成exe文件:
Step-3: 执行
建议大家在终端执行,这样容易发现错误:
效果:
结语:
TF的版本2.1.0 打包成exe,先写到这里,作为一个记录吧,也真心希望能帮助到大家。欢迎大家留言,我会及时回复的,这个过程中也还是有很多细节限于篇幅不能详细展开。转载,请注明出处。谢谢大家。