我知道可以使用extra-require
在setup.py中定义可选依赖项。现在我在自问是否也可以以某种方式将软件包标记为可选的,以便您可以选择要安装哪些子软件包?有没有一种方法将可选依赖项映射到可选软件包。
例如,如果我有一个名为项目A的项目和这个软件包结构:
Project
--subPackage 1
--subPackage 2
--subPackage 3
我希望将子包2和3标记为可选项,这样这些包就不会默认安装。但是,如果通过pip或项目B的要求指定了子包,则应该安装其依赖项。
因此,项目B的预期行为应该是:
项目B的setup.py:
setup(
name='Project B',
version='0.0.0',
install_requires=["ProjectA"])
修改install_requires
为install_requires=["ProjectA[Subpackage2]"]
后,仅安装项目1的子包1。如果我想要安装项目A和子包1和2,并且满足子包1和2的要求,请问有没有一种方法可以创建一个设置文件(setup.py)来实现这种行为?