pip 可以从 setup.cfg 安装,就像从需求文件安装一样吗?

Can pip install from setup.cfg, as if installing from a requirements file?

根据 setuptools documentationsetuptools 版本 30.3.0(2016 年 12 月 8 日)"allows using configuration files (usually setup.cfg) to define package’s metadata and other options which are normally supplied to setup() function"。类似于 运行 pip install -r requirements.txt 从需求文件安装 Python 包,有没有办法让 pip 安装 install_requires 选项中列出的包setup.cfg 配置文件?

不,pip 目前没有解析 setup.cfg 要求的工具。它只会安装依赖项以及 setup.py.

中提供的主要包

这是我的解决方法。我使用以下命令解析 setup.cfg 文件中的 install_requires 元素并使用 pip.

安装包
python3 -c "import configparser; c = configparser.ConfigParser(); c.read('setup.cfg'); print(c['options']['install_requires'])" | xargs pip install

这是上面命令行中管道之前的 Python 脚本的更具可读性的版本。

import configparser
c = configparser.ConfigParser()
c.read('setup.cfg')
print(c['options']['install_requires'])

如果您在 setup.cfg 中定义了所有依赖项和其他元数据,只需在同一目录中创建一个最小的 setup.py 文件,如下所示:

from setuptools import setup
setup()

从现在开始,您可以 运行 pip install 并且它将安装 setup.cfg 中定义的所有依赖项,就好像它们是在 setup.py 中声明的一样。

如果您的 setup.cfg 属于格式正确的包,您可以这样做:

pip install -e .[tests,dev]

(就地安装此软件包,带有给定的附加功能)

之后你可以pip uninstall那个包的名字,留下deps。