我正在尝试使用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/)分析了可执行文件,所有内容看起来都正确链接。
有什么想法吗?
答案 0 :(得分:2)
您需要将atexit模块添加为include。来源:http://qt-project.org/wiki/Packaging_PySide_applications_on_Windows
(Linux btw也是如此)
答案 1 :(得分:1)
感谢您的帮助。实际上,这并没有改变任何东西:/但是,我找到了解决我的问题的方法:如果我添加from PySide import QtCore, QtGui
,那么可执行文件(使用pyinstaller)确实有效!