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

Python pip是否可以从setup.cfg安装,就像从需求文件安装一样?,python,pip,setuptools,Python,Pip,Setuptools,根据setuptoolsversion 30.3.0(2016年12月8日),“允许使用配置文件(通常是setup.cfg)定义包的元数据和其他选项,这些选项通常提供给setup()函数”。与运行pip install-r requirements.txt从需求文件安装Python软件包类似,是否有方法要求pip安装install\u requires配置文件的setup.cfg选项中列出的软件包?否,pip目前没有从setup.cfg解析需求的工具。它将只安装依赖项以及setup.py中提供的

根据
setuptools
version 30.3.0(2016年12月8日),“允许使用配置文件(通常是setup.cfg)定义包的元数据和其他选项,这些选项通常提供给
setup()
函数”。与运行
pip install-r requirements.txt从需求文件安装Python软件包类似,是否有方法要求
pip
安装
install\u requires
配置文件的
setup.cfg
选项中列出的软件包?

否,pip目前没有从
setup.cfg
解析需求的工具。它将只安装依赖项以及
setup.py

中提供的主程序包。以下是我的解决方法。我使用以下命令解析
setup.cfg
文件中的
install\u 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卸载该软件包,保留deps。

或者,您可能只是希望安装需求,而不是实际的软件包?好了,pip本身没有读取
setup.cfg
的能力,所有选项都由
setuptools.config.read\u configuration
读入
setup.py
。@rnorris的注释是正确的。我不想安装Python包本身,我想安装它的依赖项。我想要类似于
pip install-r requirements.txt的东西,但是类似于
pip install-r setup.cfg的东西。pip本身不支持这一点。您可能需要推出自己的解决方案。我可以问一下,通过安装特定模块的依赖项,而不是模块本身,您试图实现什么目的吗?在虚拟环境中安装依赖项以开发项目本身(无需安装)。我认为Argentpaper提到的用例,
pip安装--可编辑。
将是一个合适的解决方案。
--editable
标志的预期用途是使开发包在安装环境中可用,并在不重新安装包的情况下显示任何源代码更改。此脚本不支持必须通过
依赖项链接安装的包,如文件所述。供参考
pip安装。
与setup.py位于同一目录下