PyInstaller打包第三方模組adodb

2021-05-24 14:35:25 字數 802 閱讀 9893

上次用python的adodb模組寫了個訪問access資料庫的程式,發布時想打包成單獨的乙個exe檔案,完成這個任務的工具是pyinstaller,我試過用它打包一些小python程式,一次就成功了,但adodb就不行了,似乎沒辦法將adodb模組打包進去.通過檢視手冊,總算明白是怎麼回事了,pyinstaller無法獲知通過非常手段匯入的模組,

如呼叫__import__,exec,eval函式.pyinstaller對於這種情況會在warn*.txt日誌中留下一句警告:w: delayed  __import__ hack detected at line 0 - adodb (d:/program files/python25/lib/site-packages/adodb/adodb.pyc)

這句警告說明了adodb.py中通過非常手段匯入了乙個未知模組.通過檢視adodb.py發現它確實是通過__import__匯入了乙個模組:adodb_odbc.

解決該問題的步驟如下,在pyinstaller根目錄的hooks寫乙個名為hook-adodb.py的檔案內容為:

hiddenimports = ['adodb_odbc']

在這個目錄上可以發現pyinstaller對於諸多已知模組已經內建提供了相應的hook檔案.

接下來刪除打包所生成的一些檔案,再次執行打包過程,ok.

一些感想:對於非python專案,可以嘗試用python進行快速原型

開發,如驗證演算法等,當專案期限將至時,轉化為其它語言的時間不夠時,可用pyinstaller將這個python程式轉化為exe,然後將這個exe分發給終端使用者,這樣對已有的系統佈署不會造成過大的衝擊.

pyinstaller打包程式

python打包成exe檔案時,用的是pyinstaller 第一步安裝pyinstaller pip install pyinstaller第二步 pyinstaller f w i ico py其中 ico 是logo,py是你要打包的py檔案 我在打包時出現了struct.error unpa...

pyinstaller打包使用

pyinstaller manage.py 如果直接打包報錯,使用如下命令可以直接生成配置檔案 pyi makespec d manage.py生成的配置檔案格式如下 mode python coding utf 8 block cipher none a analysis impala etl.p...

pyinstaller 打包總結

pyinstaller 打包過程總結 安裝 pyinstaller 打包工具 pip3 install pyinstallerpyinstaller 打包命令不熟悉的小夥伴可點選這裡檢視喲 備註 以下涉及到的檔案名字main.py,請替換成自己的檔名 執行打包命令生成單獨的 exe 程式 pyins...