【2021年最新版】MacOSで複数のPython/Anacondaバージョンを使い分ける方法【データ分析】

こんにちは。今日は、Mac OSで複数のPythonバージョンを行う方法についてまとめておこうと思います。Anacondaなどで入れたPythonを使ってデータ分析をしていると、ある日Pythonの新しいバージョンが公開されて、そちらを使うようにしたいケースがあるかと思います。(というか自分がこの記事に整理しようと思ったきっかけがこれでした)

このための方法として、以下ではpyenvというパッケージを利用する方法をご紹介します。

pyenvとは?

詳しくはこちらをご参照ください。pythonのバージョン管理を行うことができるソフトです。

https://github.com/pyenv/pyenv

Home Brewをインストールする

Home brewインストール済の方はこのセクションは読み飛ばしてください。

pyenvはMacの場合Home Brewというパッケージ管理ソフトからインストールすることができますので、Home BrewがPCに入っていない場合にははじめに入れておきます。以下ホームページで紹介されているコマンド1つ打つだけ。簡単です。

https://brew.sh/index_ja

Home Brewのホームページ
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

pyenvをインストールする

続けて、homebrewを使ってpyenvをインストールします。

brew install pyenv
pyenvのインストール中表示

pyenvのパスをMacの環境変数設定に追加する

続けてMacの環境変数にpyenvのパスを追加します。過去の記事では、.bash_profileファイルに追加している記事が多く見受けられますが、Mac OSのCatalinaからはbashではなくzshが標準になっていますので、やり方が少し変わっていることに注意が必要です。

zshの場合は以下の方法で設定可能です。

## .zprofileファイルは既定では存在しないので、.bash_profile設定を引き継いだものをコピー作成する
cp ~/.bash_profile ~/.zprofile

## pyenvのパス設定追加
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile
echo 'eval "$(pyenv init -)"' >> ~/.zprofile

## 追加した設定を反映し直す
source ~/.zprofile

ここでターミナルを再起動して、環境変数が反映されていることを確認しておきます。ここで先ほど追加したpyenv関連のパスが追加されていればOKです。

echo $PATH

Pyenvを使って特定バージョンのPythonをインストールする

続いて、pyenvを使って特定のバージョンのpythonをインストールしていきます。はじめに、インストール可能なバージョンの一覧を確認します。

pyenv install --list

この中からインストールしたいバージョンを選ぶことができます。例えば、Python3.9.0をインストールするとします。その場合、以下のコマンドを実行します。

pyenv install 3.9.0

その後、3.9.0がちゃんとインストールされたかを、以下のコマンドで確認しておきます。

pyenv versions
## 実行結果
* system (set by /Users/username/.pyenv/version)
  3.9.0

ちなみに、上の結果からも分かる通り、このコマンドの実行だけでは、version3.9.0が使われるようにはなりません。(システムのデフォルトのままです)これを切り替えるためには、以下のコマンドを実行します。

pyenv global 3.9.0

## 確認
python --version

これで3.9.0に切り替わります。ここで指定しているglobalというオプション部分では、globalかlocalかを選択できます。globalの場合はPC全体でそのバージョンが利用されるようになりますが、localの場合はコマンドを実行したディレクトリ配下でのみ設定が有効になります。

以上で、Macで特定バージョンのPythonを自由に切り替えて使えるようになりました!!

もともとAnacondaでインストールしたPythonを利用していた場合の影響

上のコマンドでPythonのバージョンを切り替えると、AnacondaのPythonではなくこちらのPythonバージョンが利用されます。

Pyenvを使って特定バージョンのAnacondaをインストールする

Pyenvでは、Python単体のバージョンだけでなく、Anacondaについても複数バージョンを管理することができます。

私はもともとpyenvを利用せず、直接Anacondaをインストールしてデータ分析などを行っていましたが、最近ではバージョン更新に柔軟に対応できるようにするため、pyenv経由でAnacondaをインストールして使うように切り替えました。

先ほどのPythonと同様、pyenvからインストール可能なAnacondaのバージョンは以下のコマンドで確認することができます。

pyenv install --list | grep anaconda

例えば、anaconda3-2020.07をインストールするには、以下のコマンドでOKです。

## anacondaをインストール
pyenv install anaconda3-2020.07

## インストールされたことを確認
pyenv versions

## バージョンの切り替え
pyenv global anaconda3-2020.07

はい、これでAnaconda3-2020.07が含む各ソフト・パッケージを利用可能になりました。とても簡単ですね。試しに、Anacondaに含まれるJupyter Notebookを起動してみます。起動すればひとまずOKでしょう。

jupyter notebook

あるバージョン(例えば2020.02)をインストールしたのちに、そのバージョンをcondaコマンドなどで2020.07にアップグレードした場合でも、pyenv versions上のバージョン名はインストール時のもののままとなってしまいます。

Pyenvを使ってインストールしたバージョンの管理

最後に、pyenvでよく使う環境管理コマンドを整理しておきます。

インストールしたバージョンの一覧を表示

pyenv versions

インストールしたバージョンのアンインストール

pyenv uninstall バージョン名

以上、MacでPythonのバージョンを使い分ける方法のご紹介でした!

同様のことを実現しようとされている方の参考に少しでもなれば幸いです!

もし、こちらの記事が参考になった、という方は、下のいいねボタンをポチっていただければ幸いです!

+1

この記事を気に入っていただけたらシェアをお願いします!

ABOUT US

アバター
Yuu113
初めまして。Yuu113と申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。