Pyinstaller打包错误解决--ui文件

打包命令:pyinstaller xx.py
可能会出现以下错误,但是不要慌,报错了也会生成一个xx.spec文件,以下几种错误都可以通过修改xx.spec文件解决。
然后:pyinstaller xx.spec

1、RecursionError: maximum recursion depth exceeded。
原因:可能是某个库或者函数递归次数太多了,超出限制。
解决办法:在xx.spec中添加两行:

import sys
sys.setrecursionlimit(5000)

5000如果还报错的话可以自己再加。

2、ModuleNotFoundError: No module named ‘pkg_resources.py2_warn’。
原因:找不到模块。一些第三方库只能自己乖乖去pip了,但是这个明显是一个库里的小模块,只要在xx.spec中引入就好了。
解决方法:修改xx.spec中的hiddenimports。

hiddenimports=['pkg_resources.py2_warn'],

3、针对用qt的图像界面。FileNotFoundError: [Errno 2] No such file or directory: ‘C:\Users\AppData\Local\Temp\_MEI213802\mapCompare_dialog_base.ui’。
原因:找不到UI文件。我的ui明明就在里面啊,看不到吗?为啥去其他路径了呀?无解。
解决办法:(1)、打包文件夹的可以直接把UI文件扔进去。(2)、修改xx.spec中的datas,以及在主函数加了一个函数。(打包单独exe或者文件夹都可以用这个)
xx.spec中的修改:

datas=[("mapCompare_dialog_base.ui",".")]

主函数的函数:

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)

qtCreatorFile = "mapCompare_dialog_base.ui"  # Enter file here.

Ui_MainWindow, QtBaseClass = uic.loadUiType(resource_path(qtCreatorFile))

最重要的打包不要忘了呀:pyinstaller xx.spec。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值