【问题标题】:PySide "hello world": py2exe/pyinstaller/cx_freeze and access violationPySide “hello world”:py2exe/pyinstaller/cx_freeze 和访问冲突
【发布时间】:2012-09-05 08:39:09
【问题描述】:

我正在尝试使用 PySide 构建一个非常基本的可执行文件 (Windows)。以下脚本在解释器中正常运行(Python 2.7、PySide 1.1.2)

#!/usr/bin/python

import sys

sys.stdout = open("my_stdout.log", "w")
sys.stderr = open("my_stderr.log", "w")

import PySide.QtGui
from PySide.QtGui import QApplication
from PySide.QtGui import QMessageBox


# Create the application object
app = QApplication(sys.argv)

# Create a simple dialog box
msgBox = QMessageBox()
msgBox.setText("Hello World - using PySide version " + PySide.__version__)
msgBox.exec_()

我尝试了 3 种方法(py2exe、pyinstaller 和 cx_freeze),所有 3 个生成的可执行文件都无法执行。出现了两个 stdout/stderr 文件,所以我发现第一个 PySide 导入使一切都失败了。 (未处理的异常/访问冲突)

我用depends (http://www.dependencywalker.com/) 分析了可执行文件,一切看起来都正确链接。

有什么想法吗?

【问题讨论】:

    标签: python py2exe pyside pyinstaller cx-freeze


    【解决方案1】:

    您需要将 atexit 模块添加为包含。来源:http://qt-project.org/wiki/Packaging_PySide_applications_on_Windows

    (顺便说一句,Linux 也是如此)

    【讨论】:

      【解决方案2】:

      感谢您的帮助。实际上,这并没有改变任何东西:/ 但是,我找到了解决问题的方法:如果我添加 from PySide import QtCore, QtGui,那么可执行文件(使用 pyinstaller)确实可以工作!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-27
        • 1970-01-01
        • 1970-01-01
        • 2014-03-17
        • 2020-04-07
        • 2011-04-19
        • 2011-09-29
        相关资源
        最近更新 更多