Python 使用Pyinstaller发布打包
对于所有专家,我们一直在开发一个包含以下模块的应用程序:Python 使用Pyinstaller发布打包,python,python-3.6,pyinstaller,Python,Python 3.6,Pyinstaller,对于所有专家,我们一直在开发一个包含以下模块的应用程序: opencv 努比 熊猫 跺脚 nltk bs4 皮尔 请求 还有一些不是pythons标准库的一部分。希望将其打包到单个可执行文件中。因此,我们尝试使用pyinstaller。执行时也是如此-它会建立分发文件夹-但无法执行。它抛出以下错误: Traceback (most recent call last): File "app.py", line 6, in <module> File "/root/Projects/
- opencv
- 努比
- 熊猫
- 跺脚
- nltk
- bs4
- 皮尔
- 请求
Traceback (most recent call last):
File "app.py", line 6, in <module>
File "/root/Projects/BIUEngine/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "ProcessManager.py", line 7, in <module>
File "/root/Projects/BIUEngine/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
exec(bytecode, module.__dict__)
File "ProcessWorker.py", line 16, in <module>
File "/root/Projects/BIUEngine/lib/python3.6/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
[3502] Failed to execute script app
有人能帮我做同样的事吗。。如何解决此问题?导入错误:numpy.core.multiarray导入失败错误因导致与numpy尝试导入特定于平台的共享库相关的崩溃而臭名昭著。几乎总是由于试图导入错误的版本或根本找不到这些库而导致的 您打包的可执行文件可能正在尝试从包外部导入某些框架,并且遇到某种版本不匹配的情况。最有可能的情况是,您也在使用某种虚拟环境,如conda或VirtualEnvironment 如果无法使用机器,很难查明问题所在。我将尝试以下方式收集有关该问题的进一步信息:
python-c'import-numpy,仔细调查实际导入了哪个版本的numpy以及从哪个版本导入的numpy;打印(基本版本);打印(numpy.\uuuu file\uuuu)
在环境中,您将在中以及在可执行文件本身中创建可执行文件import numpy
import numpy
print(numpy.__version__)
print(numpy.__file__)
在你的app.py中作为第一行(即在崩溃前查看输出)感谢所有帮助你的人。我也在其他地方发过帖子——上帝保佑——确实有人想出了一个答案。这对我来说是成功的。他建议的是-我可能有2个或更多不同的numpy安装在不同版本的机器上。一个用于2.7,另一个用于3.6,依此类推。他建议我移除其中一个,然后检查是否一切正常。这确实有点道理——因此我提前清理了2.7/3.6中的所有numpy以及其他根据需要手动安装的项目包。发布-我刚刚创建了一个虚拟机,并重新安装了所需的软件包(以及numpy) 此外,请确保pyinstaller在构建时将numpy.core.multiarray作为隐藏导入查找。(第二步——我过去已经试过了) 说什么-事情对我来说很重要。它不再给我它曾经因为这个而屈服的错误。现在我正在解决其他问题——但这种方法/机制肯定对我有效
谢谢你们再次帮助我。我爱你们所有人。您想在哪里运行可执行文件?这是您运行pyinstaller的同一台计算机吗?或者它是另一台机器?是的-尝试在运行pyinstaller的同一台机器上运行可执行文件。这可能不是pyinstaller问题,而是numpy问题。看见
import numpy
import numpy
print(numpy.__version__)
print(numpy.__file__)