プロジェクトによって使用しているPythonのバージョンは異なります。複数のプロジェクトにまたがって作業しているときに、いちいちPythonをインストールし直すのは不便で合理的ではありません。
そこで、pyenvを利用してプロジェクトごとにPythonのバージョンを管理してみます。
環境
今回の作業で使用した環境は以下のとおりです。
- Macbook M1 2020
- MacOS BigSur11.2.3
Linuxでの作業に関しても、パッケージマネージャが異なる程度ですので、適宜読み替えれば同等の結果が得られると思います。
pyenvのインストール
Pythonのバージョンを分けるために必要なpyenvをインストールします。
$ brew install pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$source ~/.bash_profile
パッケージマネージャからpyenvをインストールしたあとに、環境変数の設定等をしています。
使用予定のPythonのバージョンをpyenvにインストール
pyenvに必要な分のPythonのバージョンをインストールする必要があります。
例えば現在プロジェクトAとプロジェクトBがあって、プロジェクトAではPython 3.9.1を、プロジェクトBではPython 3.9.2を利用していたとします。そうしたら、pyenvにPython 3.9.1とPython 3.9.2をインストールすれば良いというだけのことです。
pyenvが対応している、インストール可能なPythonのバージョン一覧は、次のコマンドでリスト表示できます。
$ pyenv install --list
また、自分に必要なバージョンをクリティカルに確認したい場合はgrep等を使用するのが便利でしょう。
$ pyenv install --list | grep '3.9.2'
実際にpyenvに必要なバージョンをインストールするためのコマンドは以下のとおりです。(下の例ではPython 3.9.2をpyenvにインストールしています。)
$ pyenv install 3.9.2
プロジェクトのPythonバージョンをpyenvで指定する
まずはプロジェクトのあるディレクトリに移動します。
ここではプロジェクトAがホームディレクトリ直下のproject_aにあるとします。
$ cd ~/project_a
続いて、このディレクトリ専用にPythonのバージョンを割り当てます。ここではPython 3.9.2を割り当てます。
$ pyenv local 3.9.2
コメント