【发布时间】:2016-06-02 08:48:25
【问题描述】:
我正在尝试使用 cx_freeze 将 pyside 应用程序转换为 Windows 上的可执行文件 (.exe)。打包没有问题,但是在启动生成的.exe文件时,出现以下错误:
ImportError: 无法导入模块“PySide.QtXml”
当我尝试转换 cx_Freeze\Samples\PyQt4 附带的应用程序时,它可以正常运行。
在这个示例应用程序中,只调用了一个简单的 QDialog,但在我的应用程序中,我使用 QtDesigner 进行 GUI 设计,并使用 PySide UiLoader 加载它直接在我的 py.file 中:
class MainWindow(QtGui.QMainWindow):
def __init__(self,parent=None):
QMainWindow.__init__(self)
loader = QUiLoader()
self.ui = loader.load('xxxx.ui',self)
QMetaObject.connectSlotsByName(self)
setup.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_freeze 进行转换时使用 UiLoader 会出现一些问题,但我不知道如何解决这个问题。
【问题讨论】:
标签: python pyside cx-freeze uiloader