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
インストールしたいバージョンを指定して次のコマンドでインストール
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