PyInstaller 冻结的 PyQt4 脚本在运行时出现致命错误:"Failed to execute script xyz"

6
我正在编写以下Python 3.5脚本:
import sys
from PyQt4 import QtGui


class Window(QtGui.QMainWindow):

    def __init__(self):
        super().__init__()
        self.setGeometry(50, 50, 500, 300)
        self.setWindowTitle("HelloGUI")
        self.show()


def run():
    app = QtGui.QApplication(sys.argv)
    win = Window()
    sys.exit(app.exec_())

run()

我使用 PyInstaller 创建了可执行程序,它在本机上正常运行。但是当我在没有安装 Python 的不同 PC 上尝试运行可执行文件时,会出现以下致命错误信息:"无法执行脚本 [脚本名称]"。
如果有人知道如何使我的 GUI 程序具备可移植性,请留言。否则,请告诉我这是否可以实现。
操作系统为 Windows10 (64 位),Python 版本为 3.5 (32 位),PyInstaller 版本为 3.2,PyQt4。

我也尝试了PyInstaller官方页面上的所有方法,例如使用--onedir等,但问题仍然存在。Python版本:3.4 - GLHF
@I. A. Gerogiannis,你传递给pyinstaller哪些命令行选项? - wind85
pyinstaller --windowed --onefile app.py 或者 pyinstaller --windowed --onedir app.py。我最近也尝试使用 pyinstaller.exe --onefile --windowed --noupx myapp.py,但是它们都没有创建一个可以在不同电脑上运行的可执行文件。 - iagerogiannis
2个回答

5

我使用pyinstaller时,通过添加--noupx解决了我的问题。[PyQt5-Python 3.4]

例如:

pyinstaller.exe --onefile --windowed --noupx --icon=app.ico myapp.py

如果上述代码无法解决您的问题,请查看此链接


1
完全相同的问题。从另一台电脑运行可执行文件时,会出现我上面提到的致命错误,不是“ImportError”或“文件未找到”消息,正如你发给我的指南中所提到的那样,但是是“致命错误”(我不知道是否有任何相似之处)。此外,我已经检查了所有“清除开始”的步骤,并且似乎我已经正确地遵循它们。尽管如此,我仍然收到错误消息。非常感谢您的努力和时间。 - iagerogiannis
@I.A.Gerogiannis 我在这个问题上设置了赏金,但是...看起来赏金点数要浪费掉了... - GLHF

0
使用Python3.7-64位和PyInstaller 3.6可以顺利完成任务,没有任何错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接