pyinstaller打包可执行文件出现KeyError的问题
作者:sven365
这篇文章主要介绍了pyinstaller打包可执行文件出现KeyError的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
pyinstaller打包可执行文件出现KeyError
提示错误信息
直接运行python文件无问题,使用pyinstaller打包生成可执行文件,
运行可执行文件会出现以下报错:
Traceback (most recent call last):
File "excel2dbc.py", line 232, in <module>
File "excel2dbc.py", line 226, in main
File "canmatrix\formats\__init__.py", line 102, in dump
KeyError: 'canmatrix.formats.dbc'
[6340] Failed to execute script 'excel2dbc' due to unhandled exception!
原因分析
打包后的可执行文件系统模块字典 sys.modules 找不到对应的键值canmatrix.formats.dbc 。
原因是在插入依赖包的时候import canmatrix
只插入了基础的模块。
解决方法
增加相关子模块的插入import canmatrix.formats.dbc
,然后重新打包,生成的可执行文件运行正常。
Pyinstaller打包可执行文件运行在linux容器中
安装说明
在linux安装pyinstaller
执行打包命令
$python_path/bin/pyinstaller -F test.py
调用dist目录下文件
./test
常见问题
Python library not found: libpython3.9m.so.1.0, libpython3.9m.so, libpython3.9.so.1.0, libpython3.9.so, libpython3.9mu.so.1.0
重新编译安装python即可
./configure –prefix=/usr/local/python3.9 –enable-shared –with-ssl make make install
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。