• 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

  • 相关阅读:
    MySQL高可用搭建方案之(MHA)
    掌握C++魔法:深入解析类与对象(上篇)
    电机应用开发-PID控制器参数整定
    DP25 删除相邻数字的最大分数
    PHP的curl会话
    【FPGA基础】一文搞懂LUT查找表(附笔试/面试真题)
    26. 删除有序数组中的重复项
    处理非线性分类的 SVM一种新方法(Matlab代码实现)
    项目实战接口开发SpringBoot
    java web核心 HTTP 请求数据 响应数据 Tomcat基本使用 Servlet
  • 原文地址:https://blog.csdn.net/qq_41604569/article/details/133349251