繁体   English   中英

poetry管理的python>=3.5项目下如何使用python black formatter?

[英]How to use python black formatter under a project for python>=3.5 managed by poetry?

我用 Poetry 创建了一个 python 项目“foo”。 这是pyproject.toml的内容:

[tool.poetry]
name = "bar"
version = "0.1.0"
description = ""

[tool.poetry.dependencies]
python = ">=3.5"

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

这个package兼容Python3.5。 我想格式化程序,它与 Python3.5 不兼容。 我觉得用Python>=3.6开发是没有问题的,但是无法安装black formatter:

$ poetry add black --dev
[SolverProblemError]
The current project's Python requirement (>=3.5) is not compatible with some of the required packages Python requirement:
  - black requires Python >=3.6

Because no versions of black match >19.10b0,<20.0
 and black (19.10b0) requires Python >=3.6, black is forbidden.
So, because bar depends on black (^19.10b0), version solving failed.

所以我直接用pip安装了黑色:

$ poetry run pip install black

这种方式不适合我。 欲以诗装black

我应该怎么做? (我不想修改对python>=3.6的依赖)

似乎有点晚了,但实际上你可以做你想做的,即使黑色只支持 Python >=3.6.2

在您的 pyproject.toml 中,您可以定义受限制的依赖项,如https 中所述://python-poetry.org/docs/dependency-specification/#python-restricted-dependencies

[tool.poetry.dependencies]
python = ">=3.5"

[tool.poetry.dev-dependencies]
black = {version = "^21.7b0", python = ">=3.6.2"}

诗歌不会抱怨,你也不会有任何问题,因为它是一种开发依赖。

您需要在 pyproject.toml 中编辑pyproject.toml值:

[tool.poetry]
name = "bar"
version = "0.1.0"
description = ""

[tool.poetry.dependencies]
python = ">=3.6"

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM