python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > pyinstaller打包可执行文件出现KeyError

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文