栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

windows pyinstaller打包pytorch程序到exe文件

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

windows pyinstaller打包pytorch程序到exe文件

主要内容

利用pyinstaller将pytorch代码打包成exe其实含有比较多大的坑,这篇文章主要记录最近在项目中打包exe遇到的一些问题,由于问题主要是opencv和pytorch带来的,解决的办法和minist的pytorch程序差不多,这个minist程序我已经测试过,能够打包成功,并在没有python环境的电脑上成功运行:https://github.com/1240117300/MINIST。

出坑技巧一:安装匹配的包版本

这是虚拟环境中的安装包及对应的版本号,这张表就能差不多解决问题了,很多奇奇怪怪的问题,查了一堆资料之后,发现换一个包的版本就解决了。

出坑技巧二:从干净的虚拟环境中,只安装需要的包,能够有效减小打包文件的大小,并提高打包速度

这些安装目录在百度磁盘有,下载之后能够快速的部署深度学习环境

出坑技巧三:编写好spec文件
# -*- 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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/468600.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号