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位于同一目录下