Python Win10/Pyinstaller导入错误:numpy.core.multiarray导入失败

Python Win10/Pyinstaller导入错误:numpy.core.multiarray导入失败,python,numpy,opencv,pyinstaller,Python,Numpy,Opencv,Pyinstaller,摘要 我刚刚编写了一个Python(3.7.2)程序和一个使用Pyinstaller(3.4)将其编译为exe的程序。Python文件使用opencv Python(需要numpy)作为依赖项。尽管已经寻找了一段时间,但我在网上看到的所有解决方案都不适合我 我没有安装anaconda,也没有我正在使用的任何LIB的多个版本(包括Python本身) 此外,当我在python中运行“from numpy import multiarray”时,即使这样也会打印出一个错误,说明它无法进行导入 我尝试过

摘要

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

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

此外,当我在python中运行“from numpy import multiarray”时,即使这样也会打印出一个错误,说明它无法进行导入

我尝试过的

卸载并重新安装numpy和opencv python

将numpy更新至最新版本(1.16)

在Windows 10和7虚拟机上运行pyinstaller,除了我的本机Windows 10(当然,所有依赖项之前都是通过pip安装的)(简要说明——当我在Win7上运行时,我没有看到Win10中出现的任何“lib not found:”错误,但程序仍然无法运行)

这些结果在我收到的错误消息中都没有区别 “numpy.core.multiarray导入失败”

问题

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

谢谢

我拥有的数据

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
以下是在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

多亏了Rick M,我才发现我的版本太新了,彼此之间不太协调。我使用的有效配置是:

Python 3.5或3.7.2(最新版本为2019年1月23日)

Pyinstaller 3.4


numpy 1.15

很可能是您的计算机上安装了另一个版本的numpy导致了此问题。你可能想检查一下。或者,您可以尝试卸载现有版本,然后安装低于最新可用版本的版本。如何检查?我试着运行“pip列表”,它只显示了一个numpy版本。此外,多次运行'pip uninistall numpy'只会删除一次numpy,因此我不知道我的其他numpy会在哪里。您是否使用虚拟环境?如果您在这个隔离和受控的环境中运行pyinstaller,它可能会解决您的问题。我没有使用虚拟环境。我可以尝试使用venv并看到它的帮助。今天晚些时候,我使用venv创建了一个虚拟环境,但仍然出现了相同的错误:(我确实记得激活了环境)回溯(最近一次调用):文件“”,第1行,在ImportError中:无法从“numpy”导入名称“multiarray”(C:\Users\name\Documents\Standard Documents\Programming\Environments\SignRecorderEnvironment\lib\site packages\numpy\u init\uupy.py)