#python#使用opencv和pyzbar,pyinstaller打包时报错:ImportError: numpy.core.multiarray failed to import

前提:代码在pycharm中运行畅通,但是打包成exe后,就报错:

大概主要意思就是:opencv依赖的包numpy未成功打包进去。
        numpy.core.multiarray failed to import

看到有些博主说的,是opencv和numpy的版本问题,但是如果版本有问题,为什么pycharm上可以运行呢。然后也看到很多朋友尝试了,版本升级和降级并没有用。

后来看到很多其他人的方法:

比如打包的时候,不打包成一个文件 去掉-F参数,然后打包的时候会有一个文件夹,把原始的(PycharmProjects\pythonProject\venv\Lib\site-packages)numpy文件夹,复制到打包的dist目录下的你打包的文件夹中。然后尝试运行还是报错,然后发现有3个叫numpy的文件夹,分别是:

numpy

numpy.libs

numpy-1.26.1.dist-info

一股脑的全复制进去,结果运行成功了。

后来发现numpy.libs文件有个dll文件,如下:

libopenblas64__v0.3.23-293-gc2f4bdbb-gcc_10_3_0-2bde3a66a51006b2b53eb373ff767a3f.dll

ai说是一个动态链接库,

尝试手动把这个dll文件打包,结果成了,报错消失了。具体代码如下:

pyinstaller --hidden-import numpy --add-data "libopenblas64__v0.3.23-293-gc2f4bdbb-gcc_10_3_0-2bde3a66a51006b2b53eb373ff767a3f.dll;./"  -F 你要打包的文件名****.py

要先把这个dll文件,复制到代码的 同级目录里面,再打包。

同理还有:pyzbar的报错 缺失:libzbar-64.dll ,libiconv.dll  都可以用相同的方式打包。

pyinstaller --hidden-import numpy --add-data "libiconv.dll;./" --add-data "libzbar-64.dll;./" --add-data "libopenblas64__v0.3.23-293-gc2f4bdbb-gcc_10_3_0-2bde3a66a51006b2b53eb373ff767a3f.dll;./"  -F ***.py

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值