python打包不能在其他电脑打开_pyinstaller打包python+opencv 无法在别人电脑上正常运行 问题所在:opencv_ffmpeg341_64.dll...

用python+opencv写了个程序,在自己电脑上一切正常,但在别人电脑上就是运行不了

报错:

Exception in Tkinter callback

Traceback (most recent call last):

File "tkinter\__init__.py", line 1699, in __call__

File "ShowTheWay.py", line 53, in main

NameError: name 'img' is not defined

Traceback (most recent call last):

File "ShowTheWay.py", line 25, in on_mouse

NameError: name 'img' is not defined

然后我又回去查代码,也没有写错啊,后来加了几个检查点,才发现是视频读取这里就已经出了问题

defre_size():globalimg

img=None

re_set()ifshipin.isOpened():

ret, frame=shipin.read()

h, w, _=frame.shape

img= cv2.resize(frame, (int(w / s), int(h / s)), interpolation=cv2.INTER_AREA)print('变形完成')else:print('视频读取失败')

cv2.imshow('after resize', img)

检查到视频读取失败

也就是

shipin.isOpened()

总是返回False

网上查了下

https://stackoverflow.com/questions/11699298/opencv-2-4-videocapture-not-working-on-windows

看来是因为别人电脑上没有opencv环境,而pyinstaller又没有把对应的dll打包到exe里面,坑爹么这不是

只好手动加一下

文件名:opencv_ffmpeg341_64.dll

341是指opencv版本

我是在anaconda下安装的,所以该文件位置在C:\ProgramData\Anaconda3\Lib\site-packages

也可以去opencv官网下载

附上3.4.1的链接https://opencv.org/opencv-3-4-1.html

下载后直接双击解压

出来一个opencv的文件夹

1334823-20180324161927553-1802266999.png

1334823-20180324161957727-839931138.png

64就选带64的

把这个dll放到程序目录下面

在程序里开头加上

importctypestry:

temp=ctypes.windll.LoadLibrary( 'opencv_ffmpeg341_64.dll')except:pass

pyinstaller打包的时候就会自动添加

保险起见 把这个dll加入到生成的文件夹里

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值