PyInstaller + UI文件-FileNotFoundError:[Errno 2]没有这样的文件或目录:

PyInstaller + UI文件-FileNotFoundError:[Errno 2]没有这样的文件或目录:,第1张

PyInstaller + UI文件-FileNotFoundError:[Errno 2]没有这样的文件或目录:

整个周末都head不休,然后进一步研究SO之后,我设法使用UI文件按预期方式编译了独立的.exe。

首先,我用这个答案定义了以下函数

使用PyInstaller捆绑数据文件(–onefile)

# Define function to import external files when using PyInstaller.def resource_path(relative_path):    """ Get absolute path to resource, works for dev and for PyInstaller """    try:        # PyInstaller creates a temp folder and stores path in _MEIPASS        base_path = sys._MEIPASS    except Exception:        base_path = os.path.abspath(".")    return os.path.join(base_path, relative_path)

接下来,我使用此函数和所需类的变量导入了.UI文件。

# import .ui forms for the GUI using function resource_path()securitySearchForm = resource_path("securitySearchForm.ui")popboxForm = resource_path("popbox.ui")Ui_MainWindow, QtbaseClass = uic.loadUiType(securitySearchForm)Ui_PopBox, QtSubClass = uic.loadUiType(popboxForm)

然后,我不得不使用Qt
Designer创建资源文件(.qrc),并使用该资源文件嵌入图像/图标。完成后,我使用pyrcc4将.qrc文件转换为.py文件,该文件将在主脚本中导入。

终奌站

C:UsersgiranmPycharmProjectsPyQt Tutorial>pyrcc4 -py3 resources.qrc -o resources_rc.py

蟒蛇

import resources_rc

确认主要.py脚本正常工作后,我便使用PyInstaller创建了.spec文件。

终奌站

C:UsersgiranmPycharmProjectsPyQt Tutorial>pyi-makespec --noconsole --onefile secSearch_demo.py

根据PyInstaller的指南,我已经通过修改上述.spec文件添加了数据文件。

https://pythonhosted.org/PyInstaller/spec-files.html#adding-data-
files

最后,然后使用上方的.spec文件编译.exe。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5106227.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存