1

我正在尝试使用 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/)分析了可执行文件,一切看起来都正确链接。

任何的想法?

4

2 回答 2

2

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

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

于 2012-11-18T14:12:46.420 回答
1

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

于 2012-11-20T13:33:58.620 回答