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



根据setuptools文档,setuptools版本30.3.0(2016年12月8日)"允许使用配置文件(通常是setup.cfg)来定义包的元数据和通常提供给setup()函数的其他选项"。与运行pip install -r requirements.txt从需求文件安装 Python 包类似,有没有办法要求pip安装setup.cfg配置文件的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 保留在原位。

这是我的解决方法。我使用以下命令从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'])

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

相关内容

最新更新