根据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
中提供的主包。