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

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

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

Contents

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のバージョンを使い分ける方法のご紹介でした!

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

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

(おまけ)Python × データ分析をもっと学ぶなら・・・

個人的には、Udemyのコンテンツは利用しやすく重宝しています。その分野のエキスパートの方が作成したコンテンツなので、レビュー数が多いものを選べば内容も間違いないですし、万が一内容が合わなかった場合には30日以内の返金にも対応しているので、利用しやすいと思います。

Python × データ分析では、以下のようなコンテンツがとても人気ですので、ぜひ活用してみてください!

【世界で37万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜

【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門

おしまい

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