我试图导出我的.py脚本.exe使用PyInstaller,它依赖于使用Qt设计器创建的.ui文件。PyInstaller + UI文件 - FileNotFoundError:[Errno 2]没有这样的文件或目录:
我可以确认我的.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相当陌生 - 任何帮助将不胜感激!