[英]Get all modules/packages used by a python project
我有一個 python GUI 應用程序。 現在我需要知道應用程序鏈接到的所有庫。 這樣我就可以檢查所有庫的許可證兼容性。
我嘗試過使用 strace,但 strace 似乎報告了所有的包,即使它們沒有被應用程序使用。
而且,我嘗試了 python ModuleFinder,但它只返回 python2.7 內部的模塊,而不是鏈接的系統級包。
那么有什么方法可以獲取從我的應用程序鏈接的所有庫?
你可以給一個嘗試到圖書館https://github.com/bndr/pipreqs發現以下指導https://www.fullstackpython.com/application-dependencies.html
庫pipreqs
可通過 pip 安裝並自動生成文件requirements.txt
。
它包含您在 virtualenv 或正確安裝的 python 中使用的所有版本的導入庫。 只需輸入:
pip install pipreqs
pipreqs /home/project/location
它會打印:
INFO: Successfully saved requirements file in /home/project/location/requirements.txt
此外,它與pip install -r命令兼容:如果您需要創建項目的 venv,或使用兼容的庫更新當前的 Python 版本,您只需鍵入:
pip install -r requirements.txt
我遇到了同樣的問題,這個庫為我解決了這個問題。 不確定它是否適用於多層依賴項,即如果您有嵌套級別的依賴庫。
- 編輯1:
如果正在尋找更復雜的版本管理器,請考慮 pyvenv https://github.com/pyenv/pyenv 。 它融合virtualenv
和pipreqs
使用相同的工具,擁有超過的版本規范一些改進pipreqs
。
- 編輯2:
如果您想將庫依賴項拆分為不同的文件(例如 base、test、dev、docs)並有一種管理依賴項樹的方法,請查看pip-compile-multi
。
或者一個非常簡單的方法是轉到您的虛擬環境目錄(venv)並在終端上運行
pip freeze > requirements.txt
如果您使用的是 python3
pip3 freeze > requirements.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.