获取 Python 项目使用的所有模块/包
- 2024-11-07 08:55:00
- admin 原创
- 25
问题描述:
我有一个 Python GUI 应用程序。现在我需要知道该应用程序链接到的所有库。这样我就可以检查所有库的许可证兼容性。
我曾尝试使用 strace,但 strace 似乎会报告所有包,即使应用程序并未使用它们。
而且,我尝试了 python ModuleFinder,但它只返回 python2.7 内部的模块,而不是链接的系统级包。
那么有什么方法可以获取从我的应用程序链接的所有库吗?
解决方案 1:
您可以尝试
按照指南
https://www.fullstackpython.com/application-dependencies.html找到的库https://github.com/bndr/pipreqs
该库pipreqs
可通过 pip 安装并自动生成文件requirements.txt
。
它包含您在虚拟环境或 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
。
-- 编辑2:
如果在使用 创建模块依赖库文件后pipreqs
,您想要固定整个依赖树,请查看pip-compile
。它会找出一种方法来获取顶级库的依赖项,并将它们固定在新的需求文件中,指示依赖树。
-- 编辑3:
如果您想将依赖关系树拆分为不同的文件(例如 base、test、dev、docs)并有一种管理依赖关系树的方法,请查看pip-compile-multi
。
-- 编辑4:
此时,我建议看一下poetry / PDM / Hatch并直接使用此依赖管理器启动项目。依赖树开箱即用。
解决方案 2:
使用以下命令为 python2 安装 yolk:
pip install yolk
或者使用以下命令为 python3 安装 yolk:
pip install yolk3k
调用以下命令获取你环境中的 egg 列表:
yolk -l
或者,您可以使用snakefood来绘制您的依赖关系,正如本问题所回答的那样。
您可以尝试进入存储解压后的 egg 的 site-packages 文件夹,然后运行以下命令:
ls -l */LICENSE*
这将为您提供每个项目的许可证文件列表(如果它们存储在 egg 的根目录中,通常都是这样的)。
解决方案 3:
对于那些来自@SeF 的答案不起作用并且收到命令未找到错误的人,您也可以尝试
pip install pipreqs
pipreqs /home/project/location
'pipreqs' is not recognized as an internal or external command,
operable program or batch file.
或者
python3 -m pipreqs.pipreqs .
“。” 是你的项目位置,在我的情况下我在项目目录中
解决方案 4:
获取所有已安装的软件包或模块。一种非常简单的方法是转到终端上的虚拟环境目录(计算机用户名后面带有 (venv) 的目录),然后在终端上运行以下命令之一
pip freeze > requirements.txt
如果你使用的是 python3
pip3 freeze > requirements.txt
这将从项目期间使用的虚拟环境的包库中获取所有已安装的包,并将它们存储在运行命令时自动创建的“requirements.txt”文件中。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件