当前位置: 首页 > 知识库问答 >
问题:

使用Pyinstaller发布打包

毛博
2023-03-14

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

  • opencv
  • 努比
  • 熊猫
  • 跺脚
  • nltk
  • bs4
  • PIL
  • 请求

还有一些不是pythons标准库的一部分。希望将其打包到单个可执行文件中。因此,我们尝试使用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

下面是运行命令时的输出

root@devserver:~/Projects/BIUEngine/src# pyinstaller app.py 
113 INFO: PyInstaller: 3.4
114 INFO: Python: 3.6.7
116 INFO: Platform: Linux-4.4.0-131-generic-x86_64-with-Ubuntu-16.04-xenial
116 INFO: wrote /root/Projects/BIUEngine/src/app.spec
119 INFO: UPX is not available.
123 INFO: Extending PYTHONPATH with paths
['/root/Projects/BIUEngine/src', '/root/Projects/BIUEngine/src']
123 INFO: checking Analysis
123 INFO: Building Analysis because Analysis-00.toc is non existent
124 INFO: Initializing module dependency graph...
127 INFO: Initializing module graph hooks...
179 INFO: Analyzing base_library.zip ...
10300 INFO: running Analysis Analysis-00.toc
10357 INFO: Caching module hooks...
10381 INFO: Analyzing /root/Projects/BIUEngine/src/app.py
13258 INFO: Processing pre-find module path hook   distutils
13297 INFO: distutils: retargeting to non-venv dir '/usr/lib/python3.6/distutils'
14908 INFO: Processing pre-safe import module hook   setuptools.extern.six.moves
16017 INFO: Processing pre-find module path hook   site
16044 INFO: site: retargeting to fake-dir '/root/Projects/BIUEngine/lib/python3.6/site-packages/PyInstaller/fake-modules'
18473 INFO: Processing pre-safe import module hook   six.moves
32950 INFO: Processing pre-safe import module hook   urllib3.packages.six.moves
55571 INFO: Loading module hooks...
55572 INFO: Loading module hook "hook-PIL.Image.py"...
56546 INFO: Loading module hook "hook-encodings.py"...
56688 INFO: Loading module hook "hook-PIL.SpiderImagePlugin.py"...
56699 INFO: Excluding import 'tkinter'
56704 INFO: Import to be excluded not found: 'FixTk'
56704 INFO: Loading module hook "hook-distutils.py"...
56753 INFO: Loading module hook "hook-certifi.py"...
56755 INFO: Loading module hook "hook-sysconfig.py"...
56792 INFO: Loading module hook "hook-pytz.py"...
56989 INFO: Loading module hook "hook-nltk.py"...
57816 INFO: Loading module hook "hook-pkg_resources.py"...
58813 INFO: Processing pre-safe import module hook   win32com
58976 INFO: Loading module hook "hook-PIL.py"...
58988 INFO: Import to be excluded not found: 'FixTk'
58988 INFO: Excluding import 'PySide'
58996 INFO:   Removing import of PySide from module PIL.ImageQt
59000 INFO: Excluding import 'PyQt5'
59007 INFO:   Removing import of PyQt5 from module PIL.ImageQt
59010 INFO: Excluding import 'PyQt4'
59018 INFO:   Removing import of PyQt4 from module PIL.ImageQt
59025 INFO: Excluding import 'tkinter'
59036 INFO:   Removing import of tkinter from module PIL.ImageTk
59038 INFO: Loading module hook "hook-xml.py"...
59040 INFO: Loading module hook "hook-pandas.py"...
60447 INFO: Loading module hook "hook-sqlite3.py"...
60607 INFO: Loading module hook "hook-numpy.py"...
60609 INFO: Loading module hook "hook-pycparser.py"...
61578 INFO: Loading module hook "hook-lib2to3.py"...
61616 INFO: Loading module hook "hook-cv2.py"...
61617 INFO: Loading module hook "hook-xml.etree.cElementTree.py"...
61619 INFO: Loading module hook "hook-setuptools.py"...
62934 INFO: Loading module hook "hook-pydoc.py"...
62936 INFO: Loading module hook "hook-numpy.core.py"...
63088 INFO: Looking for ctypes DLLs
63294 WARNING: library user32 required via ctypes not found
63399 INFO: Analyzing run-time hooks ...
63439 INFO: Including run-time hook 'pyi_rth_pkgres.py'
63458 INFO: Including run-time hook 'pyi_rth_nltk.py'
63463 INFO: Including run-time hook 'pyi_rth_multiprocessing.py'
63536 INFO: Looking for dynamic libraries
65726 INFO: Looking for eggs
65727 INFO: Python library not in binary dependencies. Doing additional searching...
65822 INFO: Using Python library /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
65882 INFO: Warnings written to /root/Projects/BIUEngine/src/build/app/warn-app.txt
66237 INFO: Graph cross-reference written to /root/Projects/BIUEngine/src/build/app/xref-app.html
66476 INFO: checking PYZ
66477 INFO: Building PYZ because PYZ-00.toc is non existent
66478 INFO: Building PYZ (ZlibArchive) /root/Projects/BIUEngine/src/build/app/PYZ-00.pyz
70637 INFO: Building PYZ (ZlibArchive) /root/Projects/BIUEngine/src/build/app/PYZ-00.pyz completed successfully.
70722 INFO: checking PKG
70722 INFO: Building PKG because PKG-00.toc is non existent
70722 INFO: Building PKG (CArchive) PKG-00.pkg
70837 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
70839 INFO: Bootloader /root/Projects/BIUEngine/lib/python3.6/site-packages/PyInstaller/bootloader/Linux-64bit/run
70840 INFO: checking EXE
70840 INFO: Building EXE because EXE-00.toc is non existent
70840 INFO: Building EXE from EXE-00.toc
70842 INFO: Appending archive to ELF section in EXE /root/Projects/BIUEngine/src/build/app/app
70967 INFO: Building EXE from EXE-00.toc completed successfully.
70981 INFO: checking COLLECT
70982 INFO: Building COLLECT because COLLECT-00.toc is non existent
70983 INFO: Building COLLECT COLLECT-00.toc
82471 INFO: Building COLLECT COLLECT-00.toc completed successfully.

有人能帮我做同样的事吗。。我怎样才能解决这个问题?

共有2个答案

蒋向笛
2023-03-14

谢谢所有在外面帮忙的人。我也在其他地方发了帖子——在上帝的恩典下——有人确实想出了一个解决方案。这对我很有帮助。他的建议是-我可能有2个或更多不同的Numpy安装在机器的不同版本。一个2.7另一个3.6以此类推。他建议我把它们中的任何一个都拿走,看看事情是否解决了。它确实有一定的意义,所以我提前清理了2.7/3.6和其他根据需要手动安装的项目包。发布-我刚刚创建了一个虚拟机,并做了一个新的安装所需的包(连同Numpy)。

此外,确保pyinstaller在构建时确实查找了numpy。果心多重数组作为隐藏导入。(第二步——我过去已经试过了)。

说什么-事情对我来说很重要。它不再给我它曾经因为这个而屈服的错误。现在我正在解决其他问题——但这种方法/机制肯定对我有效。

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

东门航
2023-03-14

导入恐怖:numpy。果心multiarray导入失败错误因导致与numpy尝试导入特定于平台的共享库相关的崩溃而臭名昭著。几乎总是由于试图导入错误的版本或根本找不到这些库而导致的。

可能您的打包可执行文件正试图从包外部导入一些框架,并遇到某种版本不匹配。最有可能的是,您还在使用某种虚拟环境,如conda或Virtualenv?

如果无法使用机器,很难查明问题所在。我将尝试以下方式收集有关该问题的进一步信息:

>

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

通过在环境中运行python-c导入Numpy; print(Numpy.__version__); print(Numpy.__file__)',仔细调查Numpy的哪个版本和从哪里实际导入,您正在创建可执行文件,以及在可执行文件本身中。

最后一步可以通过

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

在你的应用程序中。py作为第一行(即在输出崩溃之前查看输出)

 类似资料:
  • 本文向大家介绍python 利用Pyinstaller打包Web项目,包括了python 利用Pyinstaller打包Web项目的使用技巧和注意事项,需要的朋友参考一下 最近需要用python打包一个单页面网页demo,于是准备用python包pyinstaller来打包程序。网上搜索了一下,大部分教程都是打包非web项目,这里分享一下打包简单网页demo的过程。 系统环境:win10+pyth

  • 更改历史 * 2017-12-31 胡小根 初始化文档 1 步骤 以下步骤以 Xcode 8.3.1 为例 1.1 生成xcode工程 ionic cordova platform add ios 如下图所示: 1.2 在xcode中登录Apple ID 如下图所示: 1.3 生成CSR文件 1.4 生成Certificate 登录developer.apple.com,生成Ce

  • 游戏发布之前的准备 啊,这么快就已经到最后一步了? 恭喜,现在只要再做最后一些处理,你的游戏就可以发布了。 首先需要的是对游戏的菜单进行调整。 平时测试的时候,“调试”菜单栏可以打开后台,方便你查看游戏过程中发生的事,但你肯定不想玩家通过后台查看甚至任意修改角色好感度吧。 所以呢,把没用的菜单关掉是很重要的一步。 只要打开“界面设定-Config.tjs”就可以很简单地关掉不想要的菜单项,当然,关

  •  在运行吉里吉里程序时、会出现游戏工程文件夹选择画面(译注:请试着点一下KAGeXpress文件夹下的krkr.eXe)。如果不希望出现文件夹选择画面,而是让吉里吉里自动读取游戏工程的话,可以使用以下的方法。 将游戏工程文件夹改名为 data  将游戏工程文件夹命名为 "data" ,并将文件夹和吉里吉里可执行文件 ( krkr.eXe ) 放在同一目录下,在吉里吉里起动的时候,就会自动执行这个游

  • 问题内容: 好的,我是程序设计中的一个完全菜鸟,我正在尝试编译一个编写的简单程序,该程序将一个字符串并以莫尔斯电码打印出来,称为morse.py。我使用安装了pyinstaller 并且我正在尝试使用pyinstaller编译程序。 现在,我已经搜索了一下,它说我需要写pyinstaller morse.py,但是我真的不知道在哪里写。我尝试移至程序目录并在CMD中执行此操作,但此操作无效。我试图

  • 问题内容: Pyinstaller的所有文档都讨论了如何包含单个文件。是否可以包含目录,还是应该编写一个函数来遍历我的包含目录来创建包含数组? 问题答案: 令我惊讶的是,没有人使用以下方式提及官方支持的选项: http://codingdict.com/questions/165642 https://pythonhosted.org/PyInstaller/advanced-topics.htm