PyQt5使用PyInstaller打包成exe后出现_MEI路径错误无法运行如何解决
问题根因
你的路径读取逻辑本身没有问题,报错的核心原因是PyInstaller打包时不会自动识别并打包非代码类的资源文件,你没有在打包参数中指定将autosubmit.ui一同封装进exe,运行exe时PyInstaller生成的临时_MEI目录下找不到对应的ui文件,就会触发路径错误。
修复步骤
- 第一步:修改打包命令,添加资源文件导入参数
Windows环境下PyInstaller的--add-data参数格式为源文件路径;打包后存放的相对路径,此处设置相对路径为.,即可将ui文件直接放到_MEI临时目录的根路径,和你现有resource_path函数的逻辑匹配,修改后的完整命令如下:pyinstaller --noconfirm --onefile --console --paths "C:/Users/jun/Desktop/lee/Programing/python/dll" --hidden-import "nbt.world" --add-data "C:/Users/jun/Desktop/lee/Programing/python/autosubmit.ui;." "C:/Users/jun/Desktop/lee/Programing/python/Auto_Submit_dev1.py" - 第二步:确认代码依赖导入完整
检查你的代码开头是否导入了以下依赖,缺失的话补全即可:import sys import os from PyQt5 import uic from PyQt5.QtWidgets import QMainWindow - 可选优化:如果后续有多个资源文件需要打包,可直接编辑首次打包生成的
Auto_Submit_dev1.spec文件,在datas配置项中添加('autosubmit.ui', '.'),后续打包直接执行pyinstaller Auto_Submit_dev1.spec即可,不需要重复输入长命令。
排查提示
如果调整后仍报错,可以保留console窗口运行exe,查看打印的base_path路径,手动打开对应_MEI临时目录确认是否存在autosubmit.ui文件,即可快速定位问题。
内容的提问来源于stack exchange,提问作者ProtossManse
相关产品推荐
相关产品推荐

