AppleSilicon M1 MacにPython3.8系をインストールする

2022-05-07

 この後記載する予定ですが、Tensorflowを使ってみたいと思ったときにPython3.8系が必要だったので方法について記載します。

 余談ですが、Homebrewからpyenvを入れていてpython3.9しか使えなくて困っていたので、そういう方々で3.8を使いたいという方をターゲットとしています。
 環境構築の方法についてはこちらのDockerを用いる方法もおすすめです。(2021/05/29 更新)

 方法は簡単でこちらの情報に従って以下のコマンドを入力します。

$ PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install --patch 3.8.7 <<(curl -sSL "https://raw.githubusercontent.com/Homebrew/formula-patches/9811be33170a8f31a684fae6955542e31eb4e61e/python/3.8.7.patch")

するとpython3.8.7がインストールされます。次にpyenvのバージョンを変更します。

pyenv global 3.8.7

以上です。

 その予定でしたが、私はここでトラブルがあったのでそちらも残しておきます。以前ご紹介したvenvで作ったPythonが3.9.1のままだったのです。

(venv)  user % python --version
Python 3.9.1
(venv) user % pyenv versions
  system
* 3.8.7 (set by /Users/user/.pyenv/version)
  3.9.1

 調べてみると仮想環境のpythonは仮想環境を作った際のバージョンが反映されていて、一度削除して再作成をしないとバージョンが変更出来ないようです。そのためバックアップをとって一度環境を削除します。この際にpipの情報を以下のコマンドからexportしておくと後の環境構築が楽です。requirementsは適当な場所に保存してください。

pip freeze > requirements

 仮想環境から抜けてフォルダを削除します。venvのコマンドで-clearを使うことで削除できるという記事を見つけましたが、私の環境ではなぜかclearを使っても削除出来なかったのでフォルダごと一度削除しています。

(venv) user % deactivate
user % rm -rf venv

 再度同じ環境を作ります。

user % python3 -m venv [venvname]
user % source stock/bin/activate
(venv) user % python -V
Python 3.8.7

バージョンを確認して3.8.7となっていれば成功です。pipから再インストールを行った後バックアップしたフォルダを戻してください。

(venv) user % pip install -r [Path to requirements]

以上で切り替え完了です。