我可以定义一个包 extra 依赖于同一个包中的另一个 extra 吗?
Can I define a package extra that depends on another extra from the same package?
我正在构建一个小型 Python 包,为此我配置了几个 extras;在我的 setup.cfg
中,我有以下内容:
[options.extras_require]
test =
coverage>=5,<6
pytest>=6,<7
pytest-cov>=2.8.1,<3
lint =
flake8
这很好用;我可以在我的包目录中执行 pip install .
、pip install .[test]
、pip install .[lint]
或 pip install .[test,lint]
,它会安装正确的东西。
现在,我想创建一个新的 extra,dev
,这样 pip install .[dev]
意味着同时安装 test
和 lint
extra。这可能吗?怎么样?
我试过了,例如
dev =
.[test]
.[lint]
但这会导致解析器错误。我还尝试在依赖项列表中明确引用我的包名称而不是 .
,但随后它开始从 PyPI 下载旧版本而不是使用当前目录。
[options.extras_require]
test =
coverage>=5,<6
pytest>=6,<7
pytest-cov>=2.8.1,<3
lint =
flake8
dev =
%(test)s
%(lint)s
我正在构建一个小型 Python 包,为此我配置了几个 extras;在我的 setup.cfg
中,我有以下内容:
[options.extras_require]
test =
coverage>=5,<6
pytest>=6,<7
pytest-cov>=2.8.1,<3
lint =
flake8
这很好用;我可以在我的包目录中执行 pip install .
、pip install .[test]
、pip install .[lint]
或 pip install .[test,lint]
,它会安装正确的东西。
现在,我想创建一个新的 extra,dev
,这样 pip install .[dev]
意味着同时安装 test
和 lint
extra。这可能吗?怎么样?
我试过了,例如
dev =
.[test]
.[lint]
但这会导致解析器错误。我还尝试在依赖项列表中明确引用我的包名称而不是 .
,但随后它开始从 PyPI 下载旧版本而不是使用当前目录。
[options.extras_require]
test =
coverage>=5,<6
pytest>=6,<7
pytest-cov>=2.8.1,<3
lint =
flake8
dev =
%(test)s
%(lint)s