使用Pyins发布打包

2024-03-28 09:46:15 发布

您现在位置:Python中文网/ 问答频道 /正文

对于所有专家-我们一直在开发一个包含以下模块的应用程序:

  • 开放式CV
  • numpy公司
  • 熊猫
  • 跺脚
  • nltk公司
  • 英国标准4
  • 皮尔
  • 请求

还有一些不是python标准库的一部分。希望将相同的文件打包到单个可执行文件中。因此尝试使用pyinstaller。执行时也是一样的-它会建立分发文件夹-但无法执行。它抛出以下错误:

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

下面是运行时命令的输出

^{pr2}$

有人能帮我吗。。我怎样才能解决这个问题?在


Tags: inpylibpackageslinesiterootloader
2条回答

ImportError: numpy.core.multiarray failed to import错误是臭名昭著的,它会导致与numpy尝试导入特定于平台的共享库相关的崩溃。几乎总是因为试图导入错误的版本或者根本找不到这些库。在

可能您打包的可执行文件试图从包外的导入一些框架,并遇到某种版本不匹配的情况。很有可能你也在使用某种虚拟环境,比如conda或virtualenv?在

如果不接触机器,很难找出问题所在。我将尝试以下方式收集有关这一问题的进一步资料:

  1. 尝试在另一台没有安装python或者至少根本没有安装numpy的机器上运行您的可执行文件,看看会发生什么。

  2. 尝试在只安装了一个numpy版本的计算机上重新打包应用程序。

  3. 通过在环境中运行python -c 'import numpy; print(numpy.__version__); print(numpy.__file__)'仔细调查numpy实际导入的版本和位置,您将在中以及在可执行文件本身中创建可执行文件。

最后一步可以通过

import numpy
import numpy
print(numpy.__version__)
print(numpy.__file__)

在你的应用程序副本作为第一行(即在崩溃前查看输出)

谢谢所有在外面帮忙的人。我也曾在其他地方发帖——上帝的恩典——确实有人想出了答案的解决方案。对我来说是成功的。他建议的是——我可以为机器的不同版本安装2个或更多不同的numpy。一个用于2.7,另一个用于3.6,依此类推。他建议我把它们中的任何一个移走,然后检查一下是否一切正常。这确实有一定的意义,所以我提前清理了2.7/3.6中的所有numpy和其他根据需要手动安装的软件包。发布-我刚刚创建了一个虚拟机,并重新安装了所需的软件包(以及numpy)。在

还要确保pyinstaller在构建时确实查找numpy.core.multiarray作为隐藏的导入。(第二步-我已经试过了)。在

该说什么-事情对我很有帮助。它不再给我错误,它过去一直在为此让步。现在我正在解决其他问题,但这个方法/机制肯定对我有用。在

谢谢你们再次帮助我。爱你们所有人。在

相关问题 更多 >