pyinstaller打包可執(zhí)行文件出現(xiàn)KeyError的問題
pyinstaller打包可執(zhí)行文件出現(xiàn)KeyError
提示錯誤信息
直接運行python文件無問題,使用pyinstaller打包生成可執(zhí)行文件,
運行可執(zhí)行文件會出現(xiàn)以下報錯:
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!
原因分析
打包后的可執(zhí)行文件系統(tǒng)模塊字典 sys.modules 找不到對應的鍵值canmatrix.formats.dbc 。
原因是在插入依賴包的時候import canmatrix
只插入了基礎的模塊。
解決方法
增加相關子模塊的插入import canmatrix.formats.dbc
,然后重新打包,生成的可執(zhí)行文件運行正常。
Pyinstaller打包可執(zhí)行文件運行在linux容器中
安裝說明
在linux安裝pyinstaller
執(zhí)行打包命令
$python_path/bin/pyinstaller -F test.py
調(diào)用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
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python實現(xiàn)的陽歷轉陰歷(農(nóng)歷)算法
這篇文章主要介紹了python實現(xiàn)的陽歷轉陰歷(農(nóng)歷)算法,需要的朋友可以參考下2014-04-04使用bandit對目標python代碼進行安全函數(shù)掃描的案例分析
這篇文章主要介紹了使用bandit對目標python代碼進行安全函數(shù)掃描,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01Python?Math數(shù)學函數(shù)常數(shù)冪和對數(shù)基礎應用實例
Python中的math模塊是數(shù)學運算的重要工具,提供了豐富的數(shù)學函數(shù)和常數(shù),本文將深入探討math模塊的功能和用法,使您能夠更好地利用Python進行數(shù)學運算2023-12-12