【发布时间】: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 steps和these steps吗?
-
非常清楚,谢谢。冻结的程序在我的系统上运行,但不在没有 Python 的人上运行。我尝试编辑规范文件以包含 PyQt4 目录,尝试在规范文件中排除 PySide。情景被一起和分开地尝试过。输出指示找到 PyQt4,因为输出显示 PyQt4、PyQt4.QtGui 和 PyQt4.QtCore 的模块钩子正在加载。
标签: python pyside python-3.5 pyinstaller importerror