Python setup.py定义具有可选依赖项的可选子包

时间:2018-07-09 12:29:42

标签: python python-3.x pip setup.py python-packaging

我知道可以用extra-require在setup.py中定义可选的依赖项。现在,我问自己是否有可能将包也标记为可选包,从而可以选择要安装的子包?有没有一种方法可以将可选依赖项映射到可选包。

例如,如果我有一个名为Project A的项目,并且此包结构为:

Project
   --subPackage 1
   --subPackage 2
   --subPackage 3

我想将子软件包2和3标记为可选,以便默认情况下不安装这些软件包。但是,如果子包是由项目B通过pip或要求指定的,则应与依赖项一起安装。

因此,项目B的预期行为应为:

项目B的setup.py:

    setup(
    name='Project B',
    version='0.0.0',
    install_requires=["ProjectA"])

仅导致安装了带有子软件包1的Project 1。但是,如果我将install_requires行更改为install_requires=["ProjectA[Subpackage2]"]。项目A随子软件包1和2一起安装,并具有子软件包1和2的给定要求。

这里有一个可用来创建setup.py的项目A的工具,用于存档此行为?

0 个答案:

没有答案