[python]使用pyinstaller打包带界面的Pytorch程序的多个问题

1 opencv兼容性问题

1.1 现象

打包为一个exe完成后,在执行exe时,报错:
ImportError: ERROR: recursion is detected during loading of “cv2” binary extensions. Check OpenCV installation.
如下图所示:
在这里插入图片描述

1.2 原因及解决方式

pyinstaller和cv2版本存在兼容问题,卸载已有的opencv-python,安装opencv-python=4.5.3.56

本人安装的为python3.7,pyinstaller5.1,opencv版本高了.

可参见这里:https://blog.csdn.net/weixin_50850903/article/details/125231985

2 缺乏yolov5下的两个文件general.pyc和coco128.yaml

2.1 现象

打包为一个exe完成后,在执行exe时,报错:缺少general.pyc和coco128.yaml。如下图所示。
在这里插入图片描述
在这里插入图片描述

2.2 原因及解决方式

yolov5中应该是用到这两个,但是没包含。
(1)general.pyc为二进制文件,为general.py编译后的格式,在VSCode中,运行工程文件,python中运行general.py时,自动生成了这个pyc文件,这个文件位于文件夹下面。
在这里插入图片描述
在这里插入图片描述
但这里生成的是general.cpython-37.pyc,不是general.pyc,这也可能是找不到的原因。
将其进行重命名为general.pyc即可。
然后把他放在了utils下面。
(2)coco128.yaml为文本格式文件。工程中就有,在data\下面。直接用即可。

解决方法,在spec中包含这两个文件即可。
spec定义如下:

a = Analysis(['D:XXX\\detect.py'],
             pathex=[],
             binaries=[(r'D:\XXX\XX\utils\general.pyc', r'.\utils' ) #进行拷贝,注意拷贝的目的文件夹需要与上面缺少的路径一致。
				],
             datas=[(r'D:\XXX\data\coco128.yaml', r'.\data' )],		#进行拷贝,注意拷贝的目的文件夹需要与上面缺少的路径一致。
             hiddenimports=[],
             hookspath=[],
             hooksconfig={
   },
             runtime_hooks=[],
             excludes=
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值