🐍
Pythonのバージョン管理をpyenv→miseに切り替えた
公開
2025-01-22
文章量
約2123字
株式会社ヤードの代表で、Yardの開発者です。 データプロダクトの受託開発や技術顧問・アドバイザーもお受けしております。 #データ利活用 #DevOps #個人開発
はじめに
最近、新たなMac PCのセットアップを行った際に、Pythonのバージョン管理をこれまで使っていたpyenv
から、最近注目を集めている新しいツールmise
(Modern Python Installation and Setup Environment)に切り替えました。
その際に調べたことや、感想をメモしようと思います。
今回はは、mise
を選んだ理由、移行の手順、実際に使った感想を紹介します。
pyenvを使用していた理由
まず、pyenv
を使っていた理由について触れます。
1. 柔軟なバージョン管理
プロジェクトごとに異なるPythonバージョンを切り替えるのにpyenv
は非常に便利でした。.python-version
ファイルを使ってディレクトリごとにバージョンを固定できるのは、複数のプロジェクトを抱える開発者にとって助かる機能です。
2. 豊富なドキュメントとコミュニティ
pyenv
は長らく使われてきたツールで、オンライン上に多くのドキュメントやトラブルシューティング情報があります。そのため、問題が発生しても解決策を見つけやすいのが魅力でした。
3. エコシステムの安定性
pyenv
はpyenv-virtualenv
などのプラグインを使うことで仮想環境の管理も容易に行えます。このエコシステムの安定性も選ばれる理由の一つです。
miseへの関心が高まった理由
最近、mise
という新しいPythonバージョン管理ツールが登場しました。モダンな設計で効率的な動作を目指したこのツールは、pyenv
の代替として注目されています。
1. シンプルで高速
mise
はシンプルなインターフェースと、高速な操作性を特徴としています。pyenv
では多くのコマンドを覚える必要がありましたが、mise
は直感的なコマンドで同様の操作を行えます。
2. 依存関係の削減
pyenv
を使うにはシステムに多くの依存関係をインストールする必要があります。一方、mise
はそれを最小限に抑えた設計となっており、環境構築がスムーズです。
3. 最新の技術スタックに対応
mise
は新しいPythonバージョンやセキュリティパッチを迅速に取り入れることが可能です。また、仮想環境の管理と統合されており、現代の開発ワークフローに適しています。
yenvからmiseへの移行手順
実際にpyenv
からmise
に移行する手順を以下にまとめました。
1. mise
のインストール
mise
は公式サイトまたはGitHubのリポジトリからインストールできます。以下はLinux環境での例です:
curl -fsSL https://get.mise.dev | bash
インストール後、環境変数を設定するためにシェルの設定ファイル(例:~/.bashrc
や~/.zshrc
)を編集します。
eval "$(mise env)"
設定を反映するには、シェルを再起動するか次のコマンドを実行してください:
source ~/.bashrc
2. Pythonバージョンの移行
pyenv
で使用していたPythonバージョンを確認します。
pyenv versions
その後、mise
を使って同じバージョンをインストールします。
mise install 3.11.4
mise install 3.9.13
3. プロジェクトごとの設定
プロジェクトディレクトリに移動し、使用するPythonバージョンを設定します。
mise use 3.11.4
これにより、プロジェクトごとに適切なバージョンが使用されます。mise
は.mise-version
ファイルを自動的に生成するため、後で簡単にバージョンを切り替えられます。
4. 古いpyenv
のアンインストール
最後に、pyenv
をアンインストールしてクリーンアップします。pyenv
関連の設定をシェルの設定ファイルから削除し、pyenv
ディレクトリを削除します。
pyenvからmiseへの移行で感じたメリット
1. 圧倒的な速度
Pythonバージョンのインストールや切り替えにかかる時間が短縮されました。
操作が軽快で、待ち時間が少ないためストレスが減少。
2. シンプルな操作性
コマンドが直感的で覚えやすい。
設定も最小限で済み、煩雑な作業が不要に。
3. 依存関係の少なさ
必要なライブラリやツールが少なく、セットアップが容易。
他のツールとの競合や設定トラブルが減少。
4. モダンな設計
最新のPythonバージョンやセキュリティ更新への対応が迅速。
仮想環境の統合管理ができ、現代の開発ワークフローに最適。
5. 軽量でクリーンな構成
mise
は軽量設計であり、余分なオーバーヘッドが少ない。システムのクリーンさを保ちやすい。
6. プロジェクトごとの簡単な切り替え
.mise-version
ファイルでディレクトリごとにバージョンを自動適用可能。複数のプロジェクトを効率的に管理できる。
まとめ
mise
は、pyenv
に代わる非常に有望なPythonバージョン管理ツールです。
そのシンプルさ、高速性、そしてモダンな設計は、多くの開発者にとって魅力的なツールとしてデファクトになっていくと感じました。