5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

poetryで利用するpythonをバージョンアップする

Posted at

やりたいこと

poetryで利用するPythonのバージョンを3.10->3.11にバージョンアップしたい!

前提

アップデートする開発環境は以下です。

  • Python
    • dockerを利用し特定バージョンのPythonを導入
  • poetry
    • container上で導入
    • poetry config virtualenvs.in-project trueを設定し、プロジェクトディレクトリの中に.venvとして仮想環境を作成

アップデート手順

1. Dockerfileのアップデート

FROM句を下記の通り変更します。

- FROM python:3.10
+ FROM python:3.11

2. poetry.tomlのアップデート

依存バージョンを下記の通り変更します。

[tool.poetry]
name = "sample"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"]

[tool.poetry.dependencies]
- python = "^3.10"
+ python = "^3.11"

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

3. .venvの削除

プロジェクトディレクトリ内に存在する .venv ディレクトリをまるごと削除します。

sample
├── .venv <- このディレクトリを削除
├── main.py
├── poetry.lock
└── pyproject.toml

.venv を削除しない場合 poetry 実行環境にバージョンアップ前(3.10)の環境が利用されます
poetry update など行う際、EnvCommandErrorが発生するので注意してください!
-> pyproject.toml.venv のバージョンが異なるのでエラーが出るのは当然...

4. poetry install を行い、バージョンアップ後の .venv を作成

プロジェクトディレクトリ直下に移動し、下記のコマンドを実施します。

poetry install

コマンドが一通り実行されると、下記のように 3.11 の環境が格納された .venv ディレクトリが作成されます。
image.png

これでPythonのバージョンアップが完了しました!

終わりに

Dockerfilepyproject.tomlだけ書き換えれば、すぐにアップデートできるだろう」とおもっていたら、割とハマってしまって時間を使ってしまいました。。。
poetry で仮想実行環境が設定されていることを意識していなかった、自分の理解不足によるものだったな、と思いました。
便利なものほど仕組みをちゃんと理解していないと、めちゃくちゃ簡単なところでハマる教訓を得ることができました!

参考

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?