利用pyinstaller将pytorch代码打包成exe其实含有比较多大的坑,这篇文章主要记录最近在项目中打包exe遇到的一些问题,由于问题主要是opencv和pytorch带来的,解决的办法和minist的pytorch程序差不多,这个minist程序我已经测试过,能够打包成功,并在没有python环境的电脑上成功运行:https://github.com/1240117300/MINIST。
这是虚拟环境中的安装包及对应的版本号,这张表就能差不多解决问题了,很多奇奇怪怪的问题,查了一堆资料之后,发现换一个包的版本就解决了。
这些安装目录在百度磁盘有,下载之后能够快速的部署深度学习环境
# -*- mode: python ; coding: utf-8 -*-
import sys
import os.path as osp
sys.setrecursionlimit(5000)
block_cipher = None
a = Analysis(['airway_seg.py'],
pathex=['E:\\MikeyNa\\pycode\\airtree_seg_xajd\\airway_deploy','E:\\MikeyNa\\pycode\\airtree_seg_xajd\\airway_deploy\\preprocessing','D:\\deeplearning\\Anaconda3\\envs\\airway_deploy\\Lib\\site-packages'],
binaries=[],
datas=[('baseline_fr_ad.ckpt','baseline_fr_ad.ckpt')],
hiddenimports=['pydicom','models','preprocessing','full_prep','baseline_fr','data','option','prepare','split_combine_mj','trainval_classifier','utils'],
hookspath=[],
hooksconfig={},
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='airway_seg',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True,
disable_windowed_traceback=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='airway_seg')
Multiprocessing error
windows下,当代码引入multiprocessing模块并使用pyinstaller打包时,会遇到exe死锁状态
原因:windows下multiprocessing模块设置有问题,在linux下没有这个问题,解决办法
from multiprocessing import freeze_support
if __name__ == '__main__':
start_time = time.time()
freeze_support()
main()
end_time = time.time()
print('end airway segmentation, time %d seconds' % (end_time - start_time))
使用pyinstaller打包多文件和目录的Python项目 - 是勇哥呀 - 博客园
总结使用pyinstaller打包pyqt5以及pytorch的各种坑_Nie_Hen的博客-CSDN博客_pyinstaller torch
嘗試使用Pyinstaller打包yolov5中detect.py文件(含pytorch框架)所遇到的問題
https://medium.com/@exexzxzpo/%E5%98%97%E8%A9%A6%E4%BD%BF%E7%94%A8pyinstaller%E6%89%93%E5%8C%85yolov5%E4%B8%ADdetect-py%E6%96%87%E4%BB%B6-%E5%90%ABpytorch%E6%A1%86%E6%9E%B6-%E6%89%80%E9%81%87%E5%88%B0%E7%9A%84%E5%95%8F%E9%A1%8C-543f5481b304