今更ですが、pyenv+venvユーザの私がpoetryへ移行した際の対応表をまとめます。
なお、poetryにはPythonのバージョンを管理する機能はないようなので、poetryはpyenvがインストールされている前提で書きます。
参考
- https://kosuke-space.com/python-poetry
- https://qiita.com/ksato9700/items/b893cf1db83605898d8a
- https://qiita.com/nya__str/items/be4cf7242e7fc7980e51
インストール
pyenv+venvのインストール
この記事を見ている人はすでに知っていると思うのでここでは省略します。
poetryのインストール
まずは前準備としてPython3.5以降をインストールしておきます。
例えばUbuntuでは
shell
apt install -y python3.12
とかでOKです。
この時点ではPythonのバージョンは気にしなくて大丈夫です。
次にpoetry本体をインストールします。
shell
curl -sSL https://install.python-poetry.org | python3 -
最後に上でのコマンドラインへの出力の一部にある
Add `export PATH="*****:$PATH"` to your shell configuration file.
の通り、export PATH="*****:$PATH"
を~/.bashrc
の末尾へ追記し、source ~/.bashrc
等で有効化すれば完了です。
shell
poetry --version
# -> Poetry (version 1.8.4)
仮想環境の作成
pyenv+venv
shell
# 使用したいPythonバージョンのインストール
pyenv install 3.10
# プロジェクトディレクトリへ移動
cd path/to/project
# 使用したいPythonバージョンを指定
pyenv local 3.10
# 仮想環境のライブラリ等を保存する場所を作成
python -m venv .env
poetry
shell
# 作成したいプロジェクトディレクトリの1つ上へ移動
cd path/to
# 'project'という名前でプロジェクトディレクトリを作成
poetry new project
# 使用したいPythonバージョンのインストール
pyenv install 3.10
プロジェクトディレクトリ直下のpyproject.toml
の一部を使用したいPythonバージョンに従って以下に変更。
pyproject.toml
[tool.poetry.dependencies]
python = "^3.10"
shell
# 使用したいPythonバージョンの実行ファイルまでのパスを指定
poetry env use ~/.pyenv/versions/3.10.15/bin/python
パッケージのインストール/アンインストール/インストール済み一覧表示
pyenv+venv
shell
# プロジェクトディレクトリへ移動
cd path/to/project
# 仮想環境の有効化
source .env/bin.activate
# numpyのインストール
pip install numpy
# インストールされているパッケージ一覧の表示
pip list
# numpyのアンインストール
pip uninstall numpy
# 仮想環境の有効化解除
deactivate
poetry
shell
# プロジェクトディレクトリへ移動
cd path/to/project
# numpyのインストール
poetry add numpy
# インストールされているパッケージ一覧の表示
poetry show
# numpyのアンインストール
poetry remove numpy
プログラムの実行
pyenv+venv
shell
# プロジェクトディレクトリへ移動
cd path/to/project
# 仮想環境の有効化
source .env/bin.activate
# 実行ファイルの場所を指定して実行
python src/run.py
# 仮想環境の有効化解除
deactivate
poetry
shell
# プロジェクトディレクトリへ移動
cd path/to/project
# 実行ファイルの場所を指定して実行
# (poetryではプロジェクトディレクトリ下の[プロジェクト名]ディレクトリ配下に実行ファイルを置くようです。)
poetry run python project/run.py
または
shell
# プロジェクトディレクトリへ移動
cd path/to/project
# 仮想環境の有効化
poetry shell
# 実行ファイルの場所を指定して実行
# (poetryではプロジェクトディレクトリ下の[プロジェクト名]ディレクトリ配下に実行ファイルを置くようです。)
python project/run.py
# 仮想環境の有効化解除
exit
仮想環境の削除
pyenv+venv
shell
# 仮想環境のライブラリ等が格納されているディレクトリを削除
rm -r path/to/project/.env
poetry
shell
# プロジェクトディレクトリへ移動
cd path/to/project
# 仮想環境の名前を取得
poetry env list
# -> project-ZdgNLEiz-py3.10 (Activated)
# 上の結果をもとに仮想環境を削除
poetry env remove project-ZdgNLEiz-py3.10
おわり
今のところあまりpoetryの便利さが感じられませんが、使えるようにしておけば将来参加するプロジェクトでpoetryを使っている場合に役に立つでしょう。多分。
あと、まだ気づけていないpoetryの利点も多分あるんでしょうね。