Ciao!みなさんこんにちは!このブログでは主に
(1)pythonデータ解析,
(2)DTM音楽作成,
(3)お料理,
(4)博士転職
の4つのトピックについて発信しています。
今日は新しいMacBook Pro (M2チップ = Apple Silicon搭載)にpython環境を構築する方法を紹介します!過去の記事ではminiforgeを使ってM1 Macにpython環境を構築しましたが、Mチップ Mac登場から1年以上経ち、Mチップ Mac用のAnacondaインストーラーが用意されるようになりました。そこで今回はMチップ Mac用のAnacondaをインストールします。
この記事を読めば、 M1またはM2チップ搭載のMacでAnacondaを使ったpython環境の構築方法がわかります!一つ一つ説明しますので、一緒にやってみましょう!
この記事はこんな人におすすめ
- Mチップ搭載のMacを買った!
- Macでpythonを使いたい!
Abstract | Mチップ MacでもAnacondaで環境構築できる
Mチップ用のAnacondaインストーラーがリリースされたことで、Mチップ(Apple Silicon) MacでもAnacondaでPythonの環境構築ができるようになりました。過去記事「python入門講座|python環境構築(python3.9をM1 Macにインストールしよう!)」では、miniforge3を使ってAnacondaと同様の環境構築を行いましたが、これからはIntelチップのときと同様、Anacondaを直接インストールすることができます。Pythonの環境構築が簡単にできて、ライブラリ管理もしっかり行えるのでAnacondaによる環境構築をやってみてください!
Background | MチップMac用のAnacondaがリリースされた
Mチップ用のAnacondaがリリースされているので、MチップMacでもこれを使ってAnacondaで仮想環境を構築するのが便利です。GUIインストーラーが用意され、スムーズに環境構築に入れるようになりました。
Pythonと環境構築
PythonではNumpyやScipyといった様々なライブラリを利用して高度な処理を行います。ライブラリを使えるようにするために「仮想環境の構築」という作業を行う必要があります。音楽で例えるなら、python本体は音楽を演奏するバンド、ライブラリは楽器などの機材で、仮想環境は音楽スタジオに相当します。クラシックのためには、クラシックのための楽器セットが揃えられたスタジオが、ジャズのためには、ジャズのための楽器セットが揃えられたスタジオが必要です。同様に、Pythonでも目的に応じでライブラリセットが異なるので、目的に応じて仮想環境を構築して使い分けると便利です。
Anacondaによる環境構築
Pythonの環境構築にはAnacondaを使うのがおすすめです。2021年5月頃には、MチップMac用のAnacondaは用意されていませんでした。そのため、過去記事「python入門講座|python環境構築(python3.9をM1 Macにインストールしよう!)」では、代わりにminiforge3をインストールすることでAnacondaと同様の環境構築ができることを紹介しました。
2022年11月現在、AnacondaからMチップMac用のAnacondaが用意されていますので、素直にこちらをインストールして使うことができます。Anacondaのダウンロードサイトを見ると「64-Bit (M1) Graphical Installer (484 MB)」というインストーラーがあるのがわかります。こちらを使います。
ちなみに、上記のインストーラーは「M1」となっていますが、M2チップでも使えます。Anacondaのコミュニティサイトの記事「MacM2 chip support」にあるように、M1チップで動くソフトウェアはM2チップでも動くようです。
Method | MチップMacでPythonの環境構築をする方法
Anacondaを使って、MチップMacにPythonの環境構築する方法を解説します。私はM2チップのMacBook Proで行いますが、前述のとおりM1でもM2でも同じように環境構築することができます。
Anacondaのインストール
まずはAnacondaをインストールします。
Anacondaインストーラーパッケージのダウンロード
Anacondaのインストーラーパッケージをダウンロードします。Anacondaのダウンロードページ(こちら)の下部のリストからM1 Mac用のインストーラー「64-bit (M1) Graphical Installer」をダウンロードします(図1)。
2022年11月現在、「64-bit (M1) Graphical Installer」をダウンロードしてみると「Anaconda3-2022.10-MacOSX-arm64.pkg」というファイルがダウンロードされました(図2)。2022.10の部分はダウンロードする時期によって異なるようです。
ちなみに、ページ上部の緑のボタンからダウンロードすると、Intel Mac用がダウンロードされてしまうのでご注意ください(図3)。「Get Additional Installers」をクリックすると図1のインストーラーリストに飛べます。
Anacondaインストーラーパッケージの実行
ダウンロードしたインストーラーパッケージを実行します。図2のファイルをダブルクリックします。実行確認画面が出るので「許可(Allow)」をクリックします。
インストーラーが動き出すので、「続ける」「インストール」をクリックして進めていきます(図5)。
しばらくするとインストールが完了します。インストールプロセスが最後まで行ったら、インストーラーパッケージをゴミ箱に入れて終了です(図6)。
仮想環境の追加(任意)
必要に応じて仮想環境を追加します。Anacondaをインストールすると、base環境が構築されています。基本はbase環境を使っていけば十分ですが、追加ライブラリをたくさん入れると、ライブラリ同士が競合してしまって動かないこともあります。そのような問題を防ぐために目的別に仮想環境を追加することができます。音楽スタジオの例でいえば、メインスタジオ(base)の他にサブスタジオを追加して、ロックはスタジオA、ジャズはスタジオB、クラシックはスタジオCと使い分けるようなイメージです。
ここから先は過去記事
- python入門講座|python環境構築(python3.9をM1 Macにインストールしよう!)
- python入門講座|python環境構築(python3.9をIntel Macにインストールしよう!)
と同じ操作ですので、過去記事を見ていただいても構いません。
仮想環境の新規追加 | conda create
仮想環境を追加してみましょう。まずはターミナルを起動します。起動したらconda createというコマンドで仮想環境を追加します。以下を実行してみます。
conda create -n py39_ML python=3.9
今回は機械学習(Machine Learning)用のpython3.9環境を想定しているので、仮想環境名をpy39_MLとしました。
実行するとターミナル上に表示が何行か流れたあとで、「Proceed ([y]/n)?」と聞かれるので、「y」と入力してエンターを押して仮想環境の構築を進めます。数秒すると、仮想環境の構築が完了します。
この仮想環境を起動するには、
conda activate py39_ML
を実行します。
仮想環境の削除 | conda remove
作った仮想環境を削除する方法も見ておきましょう。まず、対象の仮想環境を起動している場合はdeactivateしておきます。今回はpy39_MLを削除します。ターミナルのコマンドプロンプトが
(py39_ML) USERNAME ~ %
と(py39_ML)で始まっている場合はpy39_MLがアクティブなので、deactivateします。以下をターミナルで実行します。
conda deactivate
これで、コマンドプロンプトの始まりが(base)に変わります。次に、conda removeで仮想環境を削除します。-nで仮想環境名を指定します。以下を実行します。
conda remove -n py39_ML --all
Proceed ([y]/n)?と聞かれるので、「y」と答えて削除を実行します。
仮想環境を複製して追加
新しい仮想環境を作る際、既存の仮想環境をコピーして作ることもできます。例えば、base環境には予めたくさんのライブラリが入っているので、これをコピーすると便利です。
実際にやってみます。
base環境を複製して、py39_MLを作成します。以下をターミナルで実行します。
conda create -n py39_ML --clone base
これでpy39_MLが作成されます。
仮想環境の確認 | conda info -e
構築済みの仮想環境はconda infoというコマンドで確認できます。
conda info -e
を実行すると、
# conda environments: # base * /opt/anaconda3 py39_ML /opt/anaconda3/envs/py39_ML
などと表示されます。アスタリスクがついているのがアクティブな仮想環境です。
参考 | condaコマンドが通らない場合(command not found)
ちなみに、ここでもしcondaコマンドが通らないエラー(command not found)が出る場合は、新規にターミナルウィンドウを開いてやり直してみてください。Anacondaのインストーラーを実行すると
~/.bash_profile
と
~/.zshrc
というファイルに、condaコマンドが定義されます。これらのファイルはターミナルウィンドウを立ち上げるときに読み込まれます。このときに、ターミナルがzsh(最近のmacのデフォルト)の場合は~/.zshrc、bash(昔のmacのデフォルト)の場合は~/.bash_profileが読み込まれることで、condaコマンドが定義されて使えるようになります。
ところが、Anacondaのインストーラー実行前にターミナルウィンドウが開かれていると、condaコマンドが定義される前時点での~/.zshrcや~/.bash_profileが読み込まれています。よって、condaコマンドがまだ定義されていないため、condaコマンドが通りません。
このような場合、ターミナルウィンドウを開き直すことで再読込されてcondaコマンドが使えるようになります。もしくは、sourceコマンドでこれらを手動で再読み込みすることもできます。使っているターミナルのシェルがzshの場合、
source ~/.zshrc # zshの場合
を実行します。使っているターミナルシェルがbashの場合は、
source ~/.bash_profile # bashの場合
を実行します。
ライブラリのインストール
必要に応じてライブラリをインストールします。こちらも過去記事
- python入門講座|python環境構築(python3.9をM1 Macにインストールしよう!)
- python入門講座|python環境構築(python3.9をIntel Macにインストールしよう!)
と同じ操作ですので、過去記事を見ていただいても構いません。
condaによるライブラリインストール
大半のライブラリはAnacondaに用意されているため、conda installコマンドでライブラリをインストールすることができます。今回は、先程作ったpy39_MLの環境に以下2つのライブラリを追加してみます。
- astropy: 天文学の計算やデータ処理のためのライブラリ
- multiprocess: 並列計算を行うためのライブラリ
py39_MLはbase環境から複製されたため、主なライブラリ(numpy, scipy, pandas, scikit-lean, matplotlibなど)はすでにインストールされています。他にライブラリを追加する必要はほとんどないですが、astropyやmultiprocessといった少しマニアックなものは追加する必要があります。ターミナルで
conda activate py39_ML
を実行してpy39_MLをアクティブにして、さらに以下を実行します。
conda install astropy multiprocess
Proceed ([y]/n)?と聞かれるので、「y」と答えて完了です。
pipによるライブラリインストール
マニアックなライブラリの中にはconda installでインストールできないものもあります。そのような場合はpipを使ってインストールします。例えば、skyfieldというライブラリ(詳細はこちら)は天体の軌道計算をするためのものですが、condaからインストールできません。試しにターミナルで以下を実行してみます。
conda install skyfield
すると以下のようなエラーが返ってきます。
PackagesNotFoundError: The following packages are not available from current channels:
- skyfield
skyfieldのドキュメントページ(こちら)のインストール方法を見ると、pipでインストールするように書かれています。ターミナルで以下を実行してみましょう。
pip install skyfield
数行の処理が走ってインストールが完了します。
Result | 動作確認
仮想環境の構築やライブラリのインストールができたことを確認してみましょう。
base環境の確認
まずはbase環境を確認してみます。base環境が起動していない(ターミナルの一番下の行が(base)で始まっていない)場合、
conda activate base
を実行してbase環境を起動します。
base環境を起動したら、
python
を実行しましょう。以下のような表示が現れてpythonの実行環境に入ります。
Python 3.9.13 (main, Aug 25 2022, 18:24:45)
[Clang 12.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
base環境にはnumpyなどの基本的なライブラリが入っているので、これらをimportできることを確認しましょう。以下を入力し、エンターを押して実行しましょう。
import numpy as np
特に何もなく次の行に移動するはずです。
さらにbase環境にインストールされていないライブラリをimportしてみてエラーとなることも確認してみましょう。以下を入力、エンターを押して実行しましょう。
import multiprocess
今度は以下のようなエラーとなるはずです(ならない場合はライブラリがインストールされています)。
Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'multiprocess'
base環境にはmultiprocessは入っていないので、このようなエラーとなります。
一度pythonの実行環境を抜けましょう。以下を入力、エンターを押して実行しましょう。
exit()
これで元のターミナルの表示(最終行が(base)で始まる)に戻ります。
追加した仮想環境の確認
次に、先程追加した仮想環境py39_MLも確認します。まずはターミナルで
conda activate py39_ML
を実行してpy39_MLを起動します。さらに
python
を実行してpythonの実行環境に入ります。pythonの実行環境に入ったら、以下を入力、エンターを押して実行しましょう。
import multiprocess
今度は何も表示されることなく、次の行に移るはずです。先程multiprocessをインストール済みなので、エラーにはなりません。確認はこれで終わりにします。exit()を実行してpythonの実行環境から抜けます。
Conclusion | まとめ
最後までご覧いただきありがとうございます!MチップMacでpythonの環境構築をする方法を解説しました。Pythonなどのプログラミングは環境構築するまでが面倒ですが、ステップバイステップで真似してやってみてください。一度環境構築できてしまえば、あとはプログラミングを書くだけです!
以上「python入門講座 | Anacondaでpython3をMチップMacにインストールする方法」でした!
またお会いしましょう!Ciao!
References | 参考
以下の外部サイトを参考にしました。
- 本サイト過去記事: python入門講座|python環境構築(python3.9をM1 Macにインストールしよう!)
- 本サイト過去記事: python入門講座|python環境構築(python3.9をIntel Macにインストールしよう!)
- Anacondaのコミュニティサイト: https://community.anaconda.cloud/t/macm2-chip-support/28029/6
- 仮想環境の削除方法: https://blog.mktia.com/how-to-create-and-remove-virtual-environment-on-anaconda/
- 仮想環境のコピー: https://wakatta.xyz/i180/