关于python:Win10 / Pyinstaller ImportError:numpy.core.multiarray无法导入

Win10 / Pyinstaller ImportError: numpy.core.multiarray failed to import

摘要

我刚刚写了一个Python(3.7.2)程序和一个使用Pyinstaller(3.4)来编译它到一个exe。 Python文件使用opencv-python(需要numpy)作为依赖项。尽管已经看了一段时间,我在网上看到的解决方案都没有为我工作。

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

此外,当我在python中运行'来自numpy import multiarray'时,即使打印出一个无法执行导入的错误。

我试过了什么

unistalling并重新安装numpy和opencv-python

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

除了我的原生Windows 10之外,在Windows 10和7 VM上的程序上运行pyinstaller(当然通过pip安装所有依赖项)(快速说明 - 当我在Win7上运行时,我没有得到任何'lib找不到:'我在Win10中看到的错误,但程序仍无法运行)

这些结果都没有对我收到的错误消息产生影响
'numpy.core.multiarray无法导入'。

这个问题

如何让我的程序编译成exe?我愿意使用不同的程序(pyinstaller除外)。

谢谢!!

我有的数据

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

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

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

1
2
3
4
5
6
7
8
9
10
11
PS C:\Users
ame\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
ame\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的最终构建输出

1
2
3
4
5
6
7
C:\Users
ame\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.


感谢Rick M,我能够发现我的版本太近了,彼此之间没有很好的协作。 我使用的配置是:

Python 3.5或3.7.2(最新截至01/23/2019)

Pyinstaller 3.4

numpy 1.15