簡體   English   中英

獲取 python 項目使用的所有模塊/包

[英]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 它融合virtualenvpipreqs使用相同的工具,擁有超過的版本規范一些改進pipreqs

- 編輯2:

如果您想將庫依賴項拆分為不同的文件(例如 base、test、dev、docs)並有一種管理依賴項樹的方法,請查看pip-compile-multi

安裝蛋黃:

pip install yolk

調用以下命令以獲取您環境中的雞蛋列表:

yolk -l

或者,您可以使用蛇食來繪制您的依賴關系,如本問題所述

您可以嘗試進入存儲未打包雞蛋的 site-packages 文件夾,然后運行以下命令:

ls -l */LICENSE*

這將為您提供每個項目的許可證文件列表(如果它們存儲在雞蛋的根目錄中,它們通常是)。

或者一個非常簡單的方法是轉到您的虛擬環境目錄(venv)並在終端上運行

pip freeze > requirements.txt

如果您使用的是 python3

pip3 freeze > requirements.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM