pip 可以从 setup.cfg 安装,就像从需求文件安装一样吗?
Can pip install from setup.cfg, as if installing from a requirements file?
根据 setuptools
documentation,setuptools
版本 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。
根据 setuptools
documentation,setuptools
版本 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。