【发布时间】:2016-10-19 16:56:11
【问题描述】:
我正在尝试使用 PyInstaller 将我的 .py 脚本导出到 .exe,它依赖于使用 Qt Designer 创建的 .ui 文件。
我可以确认我的 .py 脚本在通过 PyCharm 运行时工作正常 - 我能够看到我使用 .ui 文件创建的 GUI。
但是,当我将 .py 脚本导出到 .exe 并启动它时,我在命令行中收到以下错误:
C:\Users\giranm>"C:\Users\giranm\PycharmProjects\PyQt Tutorial\dist\secSearch_demo.exe"
Traceback (most recent call last):
File "secSearch_demo.py", line 13, in <module>
File "site-packages\PyQt4\uic\__init__.py", line 208, in loadUiType
File "site-packages\PyQt4\uic\Compiler\compiler.py", line 140, in compileUi
File "site-packages\PyQt4\uic\uiparser.py", line 974, in parse
File "xml\etree\ElementTree.py", line 1186, in parse
File "xml\etree\ElementTree.py", line 587, in parse
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\giranm\\securitySearchForm.ui'
Failed to execute script secSearch_demo
由于某种原因,.exe 文件正在路径中寻找 .ui 文件 - C:\Users\giranm\
但是,在进行了一些研究之后,我被告知我需要使用 os.getcwd() 并确保我的脚本中有完整路径。即使使用下面的代码,我在尝试定位 .ui 文件时仍然会出错。
PyInstaller: IOError: [Errno 2] No such file or directory:
# import relevant modules etc...
cwd = os.getcwd()
securitySearchForm = os.path.join(cwd, "securitySearchForm.ui")
popboxForm = os.path.join(cwd, "popbox.ui")
Ui_MainWindow, QtBaseClass = uic.loadUiType(securitySearchForm)
Ui_PopBox, QtSubClass = uic.loadUiType(popboxForm)
# remainder of code below.
我知道可以将 .ui 文件转换为 .py 并使用 pyuic4 将它们导入主例程。但是,我将对 .ui 文件进行多次编辑 因此我无法继续转换它们。
有没有办法解决这个问题,以便我可以创建一个独立的 .exe?
我对使用 PyQT4 和 PyInstaller 还很陌生 - 任何帮助都将不胜感激!
【问题讨论】:
标签: python pyqt4 pyinstaller qt-designer