• python版本3.10.12 pyinstaller打包exe程序出现错误,No module named_bootlocale?


    境:

    python版本3.10.12

    pyinstaller版本4.3

    使用pyinstallerupdate_common.py 文件进行打包时出现异常,具体操作如下:

    (venv) wsw@wsw:~/wsw/update$ pyinstaller -F update_common.py 
    
    • 1

    提示:No module named _bootlocale

    File "/wsw/venv/lib/python3.10/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 1703, in _find_head_package
        raise ImportError("No module named " + target_package_name)
    ImportError: No module named _bootlocale
    
    • 1
    • 2
    • 3

    查找一些博客给出的解决方案是:

    (venv) wsw@wsw:~/wsw/update$ pyinstaller -F update_common.py  --exclude-module _bootlocale
    
    • 1

    可以顺利打包完成,生成可执行文件,但是在运行可执行文件的时候出现异常:

    (venv) wsw@wsw:~/wsw/update$ ./update_common -v
    [258332] mod is NULL - structSystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
    [258332] mod is NULL - pyimod01_os_pathSystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
    [258332] mod is NULL - pyimod02_archiveSystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
    [258332] mod is NULL - pyimod03_importersSystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
    Traceback (most recent call last):
      File "PyInstaller/loader/pyiboot01_bootstrap.py", line 17, in 
    ModuleNotFoundError: No module named 'pyimod03_importers'
    [258332] Failed to execute script pyiboot01_bootstrap
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    还是提示跟刚才类似的问题,一开始问题没有妥善解决,后面就僵持住了,也不好解决,博客中声音大概是pyinstaller支持版本不一致,我就看了下自己本地的环境,python版本是:3.10.12,三方库pyinstaller的版本是4.3,

    (venv) wsw@wsw:~/wsw/update$ pip list | grep pyinstall
    pyinstaller               4.3
    pyinstaller-hooks-contrib 2021.2
    
    • 1
    • 2
    • 3

    升级 pyinstaller

    (venv) wsw@wsw:~/wsw/update$ pip install -U pyinstaller
    
    • 1

    可以成功升级:

    (venv) wsw@wsw:~/wsw/update$ pip list | grep pyinstall
    pyinstaller               6.0.0
    pyinstaller-hooks-contrib 2023.9
    
    • 1
    • 2
    • 3

    接下来的过程打包也正常进行了,编译出的文件也能正常运行了;

    issue refer:https://github.com/pyinstaller/pyinstaller/issues/5693

  • 相关阅读:
    Java线程状态转换
    MongoDB文档(二)
    08【C语言 & 趣味算法】再识:冒泡排序(问题分析、算法设计与分析、程序流程图以及完整代码)
    在ubuntu上使用wireshark对some/ip协议进行抓包
    Yield Guild Games:社区更新——2022 年第 3 季度
    汽车协议学习
    SpringBoot入门教程:浅聊POJO简单对象(VO、DTO、Entity)
    今日睡眠质量记录80分
    【STM32】STM32H750VBT6 CubeMX USBFS-UVC设备实现,以及移植问题
    如何从回收站恢复已删除的文件
  • 原文地址:https://blog.csdn.net/qq_41604569/article/details/133349251