M1 Macの環境構築についてです。

今回は理工系の研究でよく用いられるディストリビューションである「anaconda」の導入について

当然M1 Macにもpythonは標準搭載されていますが,anacondaをインストールするメリットは多いです。

例えば数値計算で必ずと言っていいほど利用する”numpy”や”scipy”なんかのライブラリがanacondaには最初から入っていますし,シンプルで使いやすいIDE「spyder」や「jupyter」も入っています。

今回の環境構築も躓くことがあったので失敗談交えて書きたいと思います。

それでは本題です。

pyenvでのAnacondaインストールはできないから注意しよう

僕はM1 Mac以前はpyenvにpythonの環境を構築して,切り替えて使ったりしていました。

M1 Macでも同じようにしようと思っていたら上手くいきませんでしたので共有します。

これについていくつかの記事では間違えた情報が出回っているように感じましたが,pyenv経由でAnacondaをインストールすることは出来ません(2021.10現在)。

これはarm64に対応してないライブラリが含まれているためのようです。

実際にやってみましたが,pyenvは今まで通り

$ brew install pyenv

でインストールできました。次にpyenvのインストールリストを

$ pyenv install -l

で確認し,リスト中にあるAnacondaを次のコマンドでインストールしようと試みました。

$ pyenv install anaconda3-5.3.1

すると次のようなエラーが返されました。

$ The binary distribution of Anaconda3 is not available for MacOSX-arm64.

やはり対応してないようです。

pyenvではAnacondaの環境が構築できないことがわかりました。

それではM1 MacでAnacondaは利用できないのか?と言われればそうではありません。

以降ではM1 Macで利用可能なAnaconda導入方法について紹介します。

公式HPからAnacondaを導入しよう

現状ではpyenvのようなバージョン管理ツールの上でAnacondaを入れることは難しそうですが,公式HPからインストールすることは可能です。

手順は非常に簡単で,まず公式HPの「Get Started」をクリックします。

以下のような水色のポップアップが出てくるので「Download Anaconda Installers」をクリックします。

クリックします。

そうすると次のような選択肢が出てきますのでMacOSのGraphical Installerからインストーラをダウンロードします。

ダウンロードが完了したら開いてインストールしていきましょう。

(ダウンロードの際メールアドレス等を要求してきますが無視してOKです)

インストールは基本全部許可で進めて大丈夫です。何かこだわりがあれば変更してください。

インストール後は「Anaconda-Navigator」を実行することで「Jupyter」や「Spyder」など色々なソフトウェアを利用できます。

これで完了です,お疲れ様でした。

最小限の構成で良ければMiniforgeを入れよう

ここからはターミナルから環境構築したい人向けの内容です。

Miniforgeとは新しめのcondaインストーラーの1つで,試したところこちらはM1 Macでも利用できました。

Anacondaと違ってあまり多くのパッケージを含みませんが,容量としては非常にコンパクトですし,必要なパッケージが出てきた際にはcondaコマンドでインストール可能です。

Miniforgeのインストールにはまずここから「Miniforge3-MacOSX-arm64.sh」をダウンロードします。下にスクロールして,画像の赤く囲ったリンクをクリックすればOKです。

ダウンロードしたらターミナルを立ち上げて以下のコマンドを叩きます。

$ bash ~/Downloads/Miniforge3-MacOSX-arm64.sh

パスが違う場合は正しく変更してから再度試してみてください。

対話形式でインストールが進むので途中止まったらEnterキーを押して進めてあげて,yes/noを要求してきたら基本yesで良いです。

これでMiniforgeが入りました!

これでターミナルにcondaを利用できるようになりましたので,次に環境を作りましょう。

$ conda create -n my_env python=3.9

これを叩けば「my_env」という環境が作られます。ここで使用するpythonのバージョンが選べますので適宜必要に応じて書き換えてください。

現状存在している環境の一覧は以下のコマンドから見ることができます。

$ conda info -e

これでmy_envが作成できているか確かめましょう。ちなみに*がついているのが現在使っている環境です。

もし変更したい場合には

$ conda activate my_env

のようにすることで変更可能です。ターミナルを再起動したらbaseという元々入っている環境になっていると思いますので上のコマンドを使って変更しましょう。

Atomにpythonのパスを通そう

今までAnacondaを利用していた方の中にはspyderでコードを書いていた方もいらっしゃると思いますが,Miniforgeを利用する場合は別のテキストエディタを利用することになります。

幾つか候補はありますが,ここではGitHubから出ているAtomというエディタの設定を簡単にご紹介します。

Atomのインストールは以下の記事で詳しく説明していますのでそちらをご参照ください。

上記準備が終わっているとして,ここでは構築した環境のpythonのパスを通す方法を紹介します。

(僕の場合デフォルトで実行したらデフォルトのver2系のpythonが使われました)

メニューバーの「Atom」->「Config…」をクリックします。すると以下のような「config.cson」というファイルが開かれると思います。

この直下に以下のようなコードを挿入します。

  runner:
    scopes:
      python: "/Users/[user name]/miniforge3/envs/my_env/bin/python3"

ここでpython:の後のパスは人によって違うかもしれませんので適切に書き換えてお使いください。

もしわからない場合はターミナルから

$ where python3

と打てばパスが返ってくると思いますのでやってみてください。

以上で今回の環境構築は終了です,お疲れ様でした!

まとめ

今回はM1チップ搭載のMacでAnacondaやMiniforgeの環境構築の方法を紹介しました。

今までAnacondaを入れてspyderを使ってpythonを書いていたのですが,今回Atom+Miniforgeで開発環境を整えてみると割と使いやすいように感じました。

皆さんもこれを機に色々試してみるのはいかがでしょうか?

それでは今回もお疲れ様でした!