33

詩の docsによると、新しいプロジェクトをセットアップする適切な方法は を使用することですがpoetry new poetry-demo、これにより、次の toml ファイルを作成することにより、現在非推奨となっている python2.7 に基づいてプロジェクトが作成されます。

[tool.poetry]
name = "poetry-demo"
version = "0.1.0"
description = ""
authors = ["Harsha Goli <harshagoli@gmail.com>"]

[tool.poetry.dependencies]
python = "^2.7"

[tool.poetry.dev-dependencies]
pytest = "^4.6"

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

これを 3.7 に更新するにはどうすればよいですか? に変更python = "^2.7"するだけで、実行python = "^3.7"時に次のエラーが発生します。poetry install

[SolverProblemError]
The current project's Python requirement (2.7.17) is not compatible with some of the required packages Python requirement:
  - zipp requires Python >=3.6

Because no versions of pytest match >=4.6,<4.6.9 || >4.6.9,<5.0
 and pytest (4.6.9) depends on importlib-metadata (>=0.12), pytest (>=4.6,<5.0) requires importlib-metadata (>=0.12).
And because no versions of importlib-metadata match >=0.12,<1.5.0 || >1.5.0
 and importlib-metadata (1.5.0) depends on zipp (>=0.5), pytest (>=4.6,<5.0) requires zipp (>=0.5).
Because zipp (3.1.0) requires Python >=3.6
 and no versions of zipp match >=0.5,<3.1.0 || >3.1.0, zipp is forbidden.
Thus, pytest is forbidden.
So, because poetry-demo depends on pytest (^4.6), version solving failed.
4

10 に答える 10

9

私も同じ問題を抱えていました。ファイルの最初の行を修正することで解決します/home/nordman/.poetry/bin/poetry(nordmanは私のローカル名です)。

に変更#!/usr/bin/env pythonするだけ#!/usr/bin/env python3

于 2020-10-10T11:50:37.450 に答える
6

pyproject.toml を変更して、このコマンド「poetry env use 3.x」を実行することができます。

于 2020-07-21T16:25:38.077 に答える
5

興味深いことに、詩は、ツール自体が依存しているパッケージが見つからないために静かに失敗し、壊れた venv をインストールし続けています。修正方法は次のとおりです。

sudo apt install python3-venv
poetry env remove python3
poetry install

pytest を削除してから再インストールする必要がありましたpoetry add pytest

python3-venv編集: プロジェクトをpython3.7から python3.8 にアップグレードするときに、この問題に再び遭遇しましたpython3.8-venv

于 2020-03-07T17:08:30.447 に答える