有没有办法在 Python requirement.txt 中生成库的描述

Is there a way to generate description of libraries in Python requirement.txt

我正在尝试了解一个现有的大型 python 项目,该项目具有 requirement.txt 中列出的大量依赖项。我想了解每个库的含义。

如果有一种方法可以生成他们从 pypi.org 或其他来源给出的简短描述,那将大有帮助。

例如:

#requirement.txt
gluonts
aiohttp

预期结果:

gluonts | GluonTS is a Python toolkit for probabilistic time series modeling
aiohttp | Async http client/server framework

是否有工具(命令行/在线)可以提供对 python 依赖项的描述性见解?

可以获取使用 pip 安装的包的描述。

pip show [options] <package>

例如

pip show requests
Name: requests
Version: 2.25.1
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: ..\programs\python\python38\lib\site-packages
Requires: urllib3, certifi, chardet, idna
Required-by:

您可以使用摘要字段作为说明。当然,这取决于作者是否提供了足够清晰的描述。

您可以在 python 脚本中使用以下

from pip._internal import main as pipmain
description = pipmain(['show','requests'])

如果您安装了这些软件包,您可以使用 pip show <package-name>。例如:

$ pip show aiohttp
Name: aiohttp
Version: 3.7.3
Summary: Async http client/server framework (asyncio)
Home-page: https://github.com/aio-libs/aiohttp
Author: Nikolay Kim
Author-email: fafhrd91@gmail.com
License: Apache 2
Location: /home/jack/repo/global-search-ingestion/global_search_lib/.venv/lib/python3.8/site-packages
Requires: typing-extensions, yarl, async-timeout, chardet, attrs, multidict
Required-by: faust, aiohttp-cors

为了 运行 这超过你的 requirements.txt,你可以使用 cutxargs

pip show $(cat requirements.txt | cut -d "=" -f 1 | xargs)

这将列出您 requirements.txt 中每个库的元数据。