【问题标题】:pyinstaller exe not running - No module named Pysidepyinstaller exe 未运行 - 没有名为 Pyside 的模块
【发布时间】:2017-05-19 22:27:03
【问题描述】:

如果从 Python 运行,我的程序可以正常工作。

我现在正在使用 Pyinstaller 将其打包成一个 exe。

pyinstaller --onefile path/to/my/file.py

如果系统上安装了 Python,我可以运行该 exe,其他人也可以。

如果安装了 Python,当通过终端运行 exe 时会出现此错误:

ImportError: No module named 'Pyside'

程序使用这个模块。 它使用的唯一库是:

os、sys、glob、selenium、PyQt4、警告

安装和导入 Pyside 不是一个选项(我已经尝试过),因为我使用的是 Python 3.5。

为什么创建的 exe 在没有 Python 的系统上寻找 PySide 模块,而不是在安装了 Python 的系统上? 谢谢

编辑 1

看来问题出在 PyQt4 上,因为下面的程序会崩溃,但带有任何其他模块的程序将在没有 Python 的系统上运行。

"""
Created on Mon Jan  9 09:23:13 2017
@author: me
"""
import PyQt4
print("This program simply tests if a packaged\npython program runs on your system!\n")
input("Press Enter to exit...")

编辑 2

程序构建时的终端输出示例。

【问题讨论】:

  • 您能否创建一个显示问题的最小示例应用程序和 pyinstaller 脚本?
  • 嗨@Trilarion,请看上面的编辑,谢谢
  • PyQt4 不是 PySide。您编辑的最小程序不应该在 PySide 中出现该错误。即使用 pyinstaller 冻结,它也应该运行。其他事情正在发生。你能关注these stepsthese steps吗?
  • 非常清楚,谢谢。冻结的程序在我的系统上运行,但不在没有 Python 的人上运行。我尝试编辑规范文件以包含 PyQt4 目录,尝试在规范文件中排除 PySide。情景被一起和分开地尝试过。输出指示找到 PyQt4,因为输出显示 PyQt4、PyQt4.QtGui 和 PyQt4.QtCore 的模块钩子正在加载。

标签: python pyside python-3.5 pyinstaller importerror


【解决方案1】:

解决此问题的方法是将 Python 版本回滚到 3.4 发行版。

安装所需的模块(PyQt4 和 PyInstaller (v3.2))后,PyInstaller 的使用方式与以前相同。

生成的 exe 能够在使用和不使用 Python 的两个系统上运行且没有错误。

PyInstaller 对此问题的跟踪是here

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多