python – setuptools和pip:最小和完整安装的选择

我们建立了一个依赖于其他库的库.但是有必要(例如,对于服务器批处理)和可选的依赖性(例如,对于具有GUI的客户端).

这样的事情是可能的:

pip install mylib.tar.gz  # automatically downloads and installs with the minimal set of dependencies

pip install mylib.tar.gz  --install-option="complete"  # automatically installs with all dependencies

我找到了extra_require标志,但是如何告诉pip使用它们呢? setup.py看起来像这样:

from setuptools import setup

# ...

# Hard library depencencies:
requires = [
    "numpy>=1.4.1",
    "scipy>=0.7.2",
    "traits>=3.4.0"
]

# Soft library dependencies:
recommended = {
    "mpl": ["matplotlib>=0.99.3"],
    "bn": ["bottleneck>=0.6"]
}

# ...

# Installer parameters:
setup(
    name = "mylib",
    #...
    install_requires = requires,
    extras_require = recommended
)

解决方法:

您可以在extras_require中安装软件包,方法是将方括号中的推荐依赖项的名称(例如,[case]中的[mpl]或[bn])附加到pip中的软件包名称.

所以要安装带有附加要求的’mylib’,你可以像这样调用pip:

pip install 'mylib[mpl]'
pip install 'mylib[bn]'

这将首先下载并安装额外的依赖项,然后是mylib的核心依赖项.

这与使用setuptools:http://pythonhosted.org/setuptools/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies声明这些依赖项的方式类似(请参阅第三个示例中的install_requires值)

上一篇:如何构建和分发依赖于第三方libFoo.so的Python / Cython包


下一篇:如何找到通过egg-link安装的python包的位置?