项目需要将TensorFlow2.1.0 打包成exe 可执行程序。踩过的坑太多,这里简单记录一下,本文基于的OS环境是 windows7。
conda create -n your-env-name python=3.7.7
这里python的版本符合 TF2.1.0工作的最低要求就行。
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的。
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')
TF的版本2.1.0 打包成exe,先写到这里,作为一个记录吧,也真心希望能帮助到大家。欢迎大家留言,我会及时回复的,这个过程中也还是有很多细节限于篇幅不能详细展开。转载,请注明出处。谢谢大家。