我正在尝试使用PyInstaller将我的.py脚本导出为.exe文件,该脚本依赖于使用Qt Designer创建的.ui文件。
我可以确认当我通过PyCharm运行我的.py脚本时,它能够正常工作-我能够看到我用.ui文件创建的GUI。
然而,当我将我的.py脚本导出为.exe并启动它时,在命令行中会收到以下错误:
由于某些原因,.exe文件在路径C:\Users\giranm\中查找.ui文件。
然而,经过一些研究,我被告知需要使用os.getcwd(),并确保我的脚本中有完整的路径。即使使用下面的代码,仍然会出现错误尝试定位.ui文件。 PyInstaller: IOError: [Errno 2] No such file or directory:
我知道可以使用pyuic4将.ui文件转换为.py文件,并在主程序中导入它们。但是,由于我将对.ui文件进行多次编辑,因此将它们不断转换并不可行。
有没有什么方法可以解决这个问题,使我能够创建一个独立的.exe文件?
我对使用PyQT4和PyInstaller还比较新,任何帮助都将不胜感激!
我可以确认当我通过PyCharm运行我的.py脚本时,它能够正常工作-我能够看到我用.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文件在路径C:\Users\giranm\中查找.ui文件。
然而,经过一些研究,我被告知需要使用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.
我知道可以使用pyuic4将.ui文件转换为.py文件,并在主程序中导入它们。但是,由于我将对.ui文件进行多次编辑,因此将它们不断转换并不可行。
有没有什么方法可以解决这个问题,使我能够创建一个独立的.exe文件?
我对使用PyQT4和PyInstaller还比较新,任何帮助都将不胜感激!
open()
函数打开通过--add-data
属性捆绑的文件时,仍然需要注意以下事项。文件的根路径是sys._MEIPASS
,后面跟着项目中的相对路径。 - n1_