微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以定义一个依赖于同一个包中的另一个额外包的额外包吗?

如何解决我可以定义一个依赖于同一个包中的另一个额外包的额外包吗?

我正在构建一个小的 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],它会安装正确的东西。

现在,我想创建一个新的附加程序 dev,以便 pip install .[dev] 意味着安装 testlint 附加程序。这可能吗?怎么样?

我试过例如

dev =
    .[test]
    .[lint]

但这会导致解析器错误。我还尝试在依赖项列表中显式引用我的包名称而不是 .,但随后它开始从 PyPI 下载旧版本而不是使用当前目录。

解决方法

使用interpolation

[options.extras_require]
test =
  coverage>=5,<6
  pytest>=6,<7
  pytest-cov>=2.8.1,<3
lint =
  flake8
dev =
  %(test)s
  %(lint)s

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。