我们建立了一个依赖于其他库的库.但是有必要(例如,对于服务器批处理)和可选的依赖性(例如,对于具有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值)