pyinstaller 打包 sentry_sdk 出現 ModuleNotFoundError 的解決方法


問題背景

我使用 pyqt 在開發一款跨平台的文件檢索工具,使用 pyinstaller 打包依賴。為了更好的統計程序的 崩潰日志,決定使用 sentry 來自動化收集。

使用共有雲的方案,安裝 sentry 官方給的 demo 程序很快就跑通了。使用 pyinstaller 可以成功打包,但程序無法啟動,日志報錯為

解決過程

ModuleNotFoundError: No module named 'sentry_sdk.integrations.logging

根據錯誤提示在 pyinstaller腳本中加入隱含導入

pyinstaller --hidden-import sentry_sdk.integrations.logging

再次打包並運行,又提示缺乏 sentry_sdk.integrations.stdlib, 手動將此依賴寫入 pyinstaller 腳本中再次提示缺乏sentry_sdk.integrations.deque

 

 

沒完沒了了,通過錯誤關鍵字找到了這個 pyinstaller-issue-4755 引到了 pyinstaller 的官方文檔

我嘗試使用 pyinstaller --hidden-import sentry_sdk.integrations.* 卻發現 pyinstaller 在打包時提示 無法分析 sentry_sdk.integrations.*

 

 

中間搜索了很多,最后得到此方案

在 pyinstaller 同級目錄下編輯一個文件 hook-sentry_sdk.integrations.py寫入這些東西

hiddenimports = [
    'sentry_sdk.integrations.argv',
    'sentry_sdk.integrations.logging',
    'sentry_sdk.integrations.stdlib',
    'sentry_sdk.integrations.threading',
    'sentry_sdk.integrations.atexit',
    'sentry_sdk.integrations.rq',
    'sentry_sdk.integrations.trytond',
    'sentry_sdk.integrations.excepthook',
    'sentry_sdk.integrations.modules',
    'sentry_sdk.integrations.dedupe'
]

 

為 pyinstaller 增加一條打包參數 

--additional-hooks-dir .

問題解決了

參考鏈接

PyInstaller 系列 - Hook 機制


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM