Win10 / Pyinstaller ImportError:numpy.core.multiarray导入失败

时间:2019-01-18 08:04:39

标签: python numpy opencv pyinstaller

摘要

我刚刚编写了Python(3.7.2)程序,并使用Pyinstaller(3.4)将其编译为exe。 Python文件使用opencv-python(需要numpy)作为依赖项。尽管寻找了一段时间,但我在网上看到的所有解决方案都没有对我有用。

我没有安装anaconda,我没有正在使用的任何库的多个版本(包括Python本身)。

此外,当我在python中运行'from numpy import multiarray'时,甚至会打印出无法导入的错误。

我尝试过的事情

安装并重新安装numpy和opencv-python

将numpy更新到最新版本(1.16)。

除了本机Windows 10外,还在Windows 10和7虚拟机中的程序上运行pyinstaller(当然,所有依赖项都是通过pip事先安装的)(快速说明-当我在Win7上运行时,我没有得到任何我在Win10中看到的“找不到库:”错误,但程序仍然无法运行)

这些结果都没有改变我收到的错误消息 “ numpy.core.multiarray导入失败”。

问题

如何使我的程序编译为exe?我愿意使用其他程序(而不是pyinstaller)。

谢谢!

我拥有的数据

以下是在python终端中运行“ from numpy import multiarray”的错误消息:

ImportError: cannot import name 'multiarray' from 'numpy' (C:\Users\name\AppData\Local\Programs\Python\Python37-32\lib\site-packages\numpy\__init__.py)

这是尝试运行已编译的exe的完整错误消息

PS C:\Users\name\Downloads\py\dist\SignRecorder> .\SignRecorder.exe
ImportError: numpy.core.multiarray failed to import
Traceback (most recent call last):
File "SignRecorder.py", line 1, in <module>
File "c:\users\name\appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\cv2\__init__.py", line 3, in <module>
ImportError: numpy.core.multiarray failed to import
[15208] Failed to execute script SignRecorder

这是pyinstaller的最终构建输出

C:\Users\name\Downloads\py\build\SignRecorder\SignRecorder.exe
19881 INFO: Building EXE from EXE-00.toc completed successfully.
19893 INFO: checking COLLECT
19893 INFO: Building COLLECT because COLLECT-00.toc is non existent
19894 INFO: Building COLLECT COLLECT-00.toc
28366 INFO: Building COLLECT COLLECT-00.toc completed successfully.

1 个答案:

答案 0 :(得分:0)

多亏了Rick M,我才发现我的版本太新了,彼此之间无法很好地配合。我使用的有效配置是:

Python 3.5或3.7.2(截至2019年1月23日)

Pyinstaller 3.4

numpy 1.15