MacでPythonのバージョンを切り替えて開発する方法

lecture

MacでPython のバージョンを切り替えて使うには Pyenvを使います。
導入には少し苦労するかもしれませんが、うまくいくと開発がスムーズにいきます。
その際、まずXcodeを使えるようにしておきます。

スポンサーリンク

Xcode導入

Xcodeはデフォルトでインストールされてません。そのためApp Storeからダウンロードしてインストールしておきます。
結構時間がかかりますので注意してください。
次に、Xcodeのインストールが終わったら、command line toolが必要になりますので、メニューから「More Developer Tools」を選びます。
command line toolはデフォルトでXcodeにインストールされていません。

Xcode->Open Developer Tool->More Developer Tools

Apple IDの認証が終わったら「More Downloads for Apple Developers」のページが表示されますので、「Command Line Tools for Xcode」最新のものをダウンロードしてインストールします。

これをインストールしてないと後々エラーの原因になります。
特にOSのバージョンを新しくした時など、再度Command Line Toolsをインストール必要があったりしますので注意してください。

Pyenvの導入

Pyenvを導入するには2通りの方法が有ります。
HomeBrewを使う方法とGitHubからpullする方法です。

Pyenvを導入1〜GitHubからpullする方法

次のコマンドでGitHubからpullします。
導入の詳細はGitHubのREADMEを参照

git clone https://github.com/yyuu/pyenv.git ~/.pyenv

次にzshの環境変数の設定です。
以下の内容を1行ずつ実行します。

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.zshrc
exec "$SHELL"

bashの場合は上のコードの「.zshrc」 部分を 「.bash_profile」 とします。

Pyenvを導入2〜HomeBrewからインストール

まずはHomeBrewをインストールします。

すでにインストールしている場合は、一度HomeBrewのアップデートをします。

アップデートの際にターミナルが反応せずに、しばらく無反応ですが裏で動いています。
しばらく待ちましょう。

brew update

次にpyenvをインストールします。

brew install pyenv

アップグレードしないと最新バージョンが一覧に出ないこともあります。
アップグレードのコマンド

brew upgrade pyenv

Mac M1でうまくバージョンが切り替わらない場合

Mac M1ではうまくバージョンが切り替わらないです。
Mac M1ではPathの設置が違うようです。以下のようにしてください。

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/shims:$PATH"
eval "$(pyenv init -)"

pyenvの使い方

現在インストールされているPythonの一覧表示をするコマンド

pyenv versions

インストール可能なPythonバージョンを表示させるコマンド

pyenv install --list

インストールしたいバージョンを指定して次のコマンドでインストール 部分は3.9.1のようにPythonのバージョン番号を指定

pyenv install <python-version>

特定のバージョンをアンインストールしたい時は、バージョンを指定してアンインストール

pyenv uninstall <Version>

通常使うPythonのバージョンを決めます。
Mac全体のPythonのバージョン指定するコマンド(デフォルトバージョン)

pyenv global <python-version>

特定フォルダだけにバージョン指定するコマンド
設定したらターミナルを再起動します。localを設定したフォルダとそれ以外の場所でPythonのバージョンが変わります。

pyenv local <python-version>

global設定してもバージョンがうまく切り替わらない場合
.zshrc ファイルに次の内容を追加

eval "$(pyenv init -)"

.zprofile ファイルに次の内容を追加

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"

仮想環境に特定のPythonのバージョンを使う方法

venvで仮想環境を作成する時にPythonのバージョン指定したいときの方法です。

次の例はtestフォルダをpython3.8.8のバージョンで仮想環境を作るコマンド

pyenv shell 3.8.8
python -m venv test

2021年2月現在、Python3.9にはtensorflowがインストールできません。
Python仮想環境をPython3.8.8で作成してインストールしようとしています。

もし、仮想環境作成後に、pipが正しく反応しない場合は次のようにしてみましょう。

python3.8 -m pip install tensorflow==2.4.0
タイトルとURLをコピーしました