python版本3.10.12
python版本3.10.12
pyinstaller版本4.3
使用pyinstaller對update_common.py 文件進行打包時出現異常,具體操作如下:
(venv) wsw@wsw:~/wsw/update$ pyinstaller -F update_common.py
提示:No module named _bootlocale
File "/wsw/venv/lib/python3.10/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 1703, in _find_head_packageraise ImportError("No module named " + target_package_name) ImportError: No module named _bootlocale
查找一些博客給出的解決方案是:
(venv) wsw@wsw:~/wsw/update$ pyinstaller -F update_common.py --exclude-module _bootlocale
可以順利打包完成,生成可執行文件,但是在運行可執行文件的時候出現異常:
(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 <module> ModuleNotFoundError: No module named 'pyimod03_importers' [258332] Failed to execute script pyiboot01_bootstrap
還是提示跟剛才類似的問題,一開始問題沒有妥善解決,后面就僵持住了,也不好解決,博客中聲音大概是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
升級 pyinstaller
(venv) wsw@wsw:~/wsw/update$ pip install -U pyinstaller
可以成功升級:
(venv) wsw@wsw:~/wsw/update$ pip list | grep pyinstall pyinstaller 6.0.0 pyinstaller-hooks-contrib 2023.9
接下來的過程打包也正常進行了,編譯出的文件也能正常運行了;
issue refer:https://github.com/pyinstaller/pyinstaller/issues/5693
"