我正在尝试使用 cx_freeze 将pyside应用程序转换为Windows 上的可执行文件(.exe)。打包工作没有问题,但是在启动生成的 .exe 文件时,我收到以下错误:
ImportError:无法导入模块“PySide.QtXml”
当我尝试转换cx_Freeze\Samples\PyQt4附带的应用程序时,它运行没有问题。
在这个示例应用程序中,只有一个简单的QDialog
调用,但在我的应用程序中,我使用QtDesigner进行 GUI 设计,并在我的 py.file 中直接使用PySide UiLoader
加载它:
class MainWindow(QtGui.QMainWindow):
def __init__(self,parent=None):
QMainWindow.__init__(self)
loader = QUiLoader()
self.ui = loader.load('xxxx.ui',self)
QMetaObject.connectSlotsByName(self)
安装程序.py
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need
# fine tuning.
buildOptions = dict(packages = [], excludes = [])
import sys
from cx_Freeze import setup, Executable
from PySide import QtXml
base = 'Win32GUI' if sys.platform=='win32' else None
options = {
'build_exe': {
'includes': 'atexit'
}
}
build_exe_options = {
'includes': ['atexit'],
}
executables = [
Executable('xxx.py', base=base)
]
setup(name='xxx',
version = '0.10',
description = 'First try',
options = dict(build_exe = buildOptions),
executables = executables)
在我看来,使用cx_freezeUiLoader
转换时存在一些问题,但我不知道如何克服这个问题。