摘要
我刚刚编写了一个使用opencv-python (需要numpy作为依赖项)的Python(3.7.2)程序,并使用Pyinstaller (3.4)将其编译成exe。尽管我已经寻找了一段时间,但我看到的在线解决方案都没有对我起作用。
我没有安装anaconda,也没有多个版本的任何库(包括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)。
谢谢!!
我拥有的数据
这是在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.