pyinstaller打包可執(zhí)行文件出現(xiàn)KeyError的問題
pyinstaller打包可執(zhí)行文件出現(xiàn)KeyError
提示錯誤信息
直接運(yùn)行python文件無問題,使用pyinstaller打包生成可執(zhí)行文件,
運(yùn)行可執(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 找不到對應(yīng)的鍵值canmatrix.formats.dbc 。
原因是在插入依賴包的時候import canmatrix
只插入了基礎(chǔ)的模塊。
解決方法
增加相關(guān)子模塊的插入import canmatrix.formats.dbc
,然后重新打包,生成的可執(zhí)行文件運(yùn)行正常。
Pyinstaller打包可執(zhí)行文件運(yùn)行在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
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)的陽歷轉(zhuǎn)陰歷(農(nóng)歷)算法
這篇文章主要介紹了python實(shí)現(xiàn)的陽歷轉(zhuǎn)陰歷(農(nóng)歷)算法,需要的朋友可以參考下2014-04-04Django中Cookie搭配Session使用實(shí)踐
session和cookie功能差不多,同樣是用來記錄用戶信息和維持會話狀態(tài)的,但是session是依賴cookie的,本文主要介紹了Django中Cookie搭配Session使用實(shí)踐,感興趣的可以了解一下2021-09-09使用bandit對目標(biāo)python代碼進(jìn)行安全函數(shù)掃描的案例分析
這篇文章主要介紹了使用bandit對目標(biāo)python代碼進(jìn)行安全函數(shù)掃描,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01學(xué)生如何免費(fèi)使用Pycharm專業(yè)版學(xué)生認(rèn)證教程
這篇文章主要介紹了學(xué)生如何免費(fèi)使用Pycharm專業(yè)版,學(xué)生認(rèn)證教程,有了這個教程在校期間就可以免費(fèi)使用Pycharm,簡直是學(xué)生黨的福音,快來一起看看吧2023-03-03Python?Math數(shù)學(xué)函數(shù)常數(shù)冪和對數(shù)基礎(chǔ)應(yīng)用實(shí)例
Python中的math模塊是數(shù)學(xué)運(yùn)算的重要工具,提供了豐富的數(shù)學(xué)函數(shù)和常數(shù),本文將深入探討math模塊的功能和用法,使您能夠更好地利用Python進(jìn)行數(shù)學(xué)運(yùn)算2023-12-12