asdfとPoetryを使ったPython仮想環境の構築
Python の仮想環境構築やバージョン管理では、
venv やpip を使用することが一般的です。
ただ、最近は、
asdf と poetry を使用して
Python の仮想環境構築とバージョン管理をする
動きが出てきています。
その方が、何かと便利だからなんですね。
この記事では、
asdf と poetryを使用することの
メリットをご紹介しながら、
具体的な環境構築の方法について解説していきます。
venvとpipの弱点
venv は仮想環境を構築し、
pip の requirements.txt は必要なパッケージのリストを管理します。
しかし、このアプローチにはいくつかの限界があります。
venv は仮想環境を分離するのみで、
Python 自体のバージョン管理機能はありません。
また、pip の requirements.txt は
パッケージのバージョンを明示的に記述する必要があり、
依存関係の解決が自動化されていません。
ここで、asdf と poetry の組み合わせが
新たな解決策として登場します。
asdfとpoetryの組み合わせのメリット
この組み合わせには、以下のメリットがあります。
多言語対応のバージョン管理: asdf は Python だけでなく、多くの他のプログラミング言語のバージョンも管理できます。これにより、Python 以外の言語を使用するプロジェクトにおいても一貫したバージョン管理が可能になります。
依存関係の自動解決: poetry は pyproject.toml を使用してプロジェクトの依存関係を管理し、パッケージの依存関係を自動で解決します。これにより、手動での依存関係の管理が不要になり、より効率的な開発プロセスを実現します。
簡易なパッケージ管理とビルド: poetry はパッケージの作成と公開を一つのツールで簡単に行うことができます。これにより、パッケージ管理とビルドプロセスが大幅に簡素化されます。
プロジェクトごとの設定の簡単化: asdf はプロジェクトごとに異なるバージョンの Python を設定することができ、poetry はその設定に基づいて仮想環境を自動的に作成します。これにより、プロジェクトごとの環境設定が簡単になります。
それでは、具体的な環境構築の方法を見ていきましょう。
asdfのセットアップ
公式ドキュメントに沿って
asdfをセットアップしていきます。
1. 依存関係のインストール
brew install coreutils curl git
2. asdfのダウンロード
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.13.1
以下のコードも実行しておくことが推奨されていますので、実行します
brew install asdf
3. asdfのインストール
ZSH&Gitの場合は以下を実行します。
ここが山場です。
. "$HOME/.asdf/asdf.sh"a
fpath=(${ASDF_DIR}/completions $fpath)
autoload -Uz compinit && compinit
4. インストール完了確認
一度、ターミナルを閉じて、開き直す
asdf versionと入力してバージョンが表示されればインストール成功
asdf version
もしうまくいかない場合は、以下を実行します
echo ". '$HOME/.asdf/asdf.sh'" > ~/.zshrc
asdfでPythonを使えるようにする
以下は公式ドキュメントです
1. 依存関係のインストール
Pythonをインストールする前に必要な依存関係をインストールします。
brew install openssl readline sqlite3 xz zlib tcl-tk
2. プラグインのインストール
asdf plugin-add python
3.asdf リストの確認
asdf list-all python
asdfのPythonプラグインでインストール可能なバージョンの一覧が表示されます
4.適当なフォルダを作成して、VS-CODEを起動させます
% mkdir ./desktop/python-stepup
% cd ./desktop/python-stepup
% code .
5. .tool-versionsというファイルの作成
できあがったファイルに、
インストールしたプログラムとバージョンを記載します。
ここでは、python 3.11.4と記載します
6.tool versionsの実行
以下のコマンドを実行すると、
tool-versionsに記載のパッケージがインストールされます
% asdf install
7.Pythonが入っているか確認します
% python --version
Python 3.11.4
Poetryのセットアップ
1. poetryのインストール
.tool-versionsにpoetry 1.5.1と入力します
pythonの時と同じ手順を繰り返します。
% asdf install
poetryがちゃんと入っているかを確認するため
Poetryのバージョンを確認します
an.@NOAs-MacBook-Air python-stepup % poetry --version
Poetry (version 1.5.1)
2.poetryの初期化
poetryを使えるようにしていきます。
% poetry init
いろいろ出力されますが、全てENTERを押していきます。
pyproject.tomlファイルが作成されます。
必要に応じて、ファイルの内容を修正していきます。
3.poetryの仮想環境の設定
以下を入力します。
% poetry config virtualenvs.in-project true --local
次に、poetryに使うPythonを指定します。
% which python
/Users/an./.asdf/shims/python
% poetry env use /Users/an./.asdf/shims/python
バージョンを確認します。
% poetry run python --version
Python 3.11.4
実際に使ってみる
poetryの仮想環境下で
実際にPythonファイルを動かしてみます。
1.パッケージをインストールする
ここではnumpyの1.26.2をインストールします。
% poetry add numpy@1.26.2
pyproject.tomlをみると、numpyが追加されている
2.poetryでファイルを実行する
poetryでファイルを実行するときのコマンドは以下の通りです
% poetry run python ファイル名
venvと違って仮想環境をあまり意識しなくて
良さそうです。
この記事が気に入ったらサポートをしてみませんか?