Pythonのバージョンをディレクトリごとに管理する

プロジェクトによって使用している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

コメント

タイトルとURLをコピーしました