はじめに
seabornを使いたくてpip install seaborn
をしたらド偉い量のエラーに見舞われた。いい機会と考えてなあなあで構築していたPython環境をすべてリセットしてイチから構築し直した。
環境
- M1 MacBook Air
- macOS Big Sur 11.3.1
この記事でやること
- Homebrewのインストール
- Pythonのインストール
- 各種パッケージ(numpy、pandas、matplotlib、scipy、seaborn)のインストール
通常使用であればこのあたりのパッケージがあれば十分?だと思う。TensorflowやPyTorchが必要な人は頑張ってくれ。
なおこの記事ではvenvなどを用いた仮想環境での構築は行わない。仮想環境を使いたい人はこの記事が参考になる。
Homebrewのインストール
M1が出てしばらくはhomebrewのインストール方法が迷走していたらしい12が、現在はコマンド一発でインストールできるようになっている3。便利〜〜。
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrewのインストールができたらパスを通しておく。ご丁寧にHomebrewくんはパスの通し方をログに書いてくれてる。
% echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> ~/.zprofile
% source ~/.zprofile
.zprofileにパスとかを書いていく感じだが、なんでもいい。Homebrewくんに逆らうなら.zshrcにでも書いておこう(僕はこっち派)。
Pythonのインストール
Homebrewで一発。
% brew install python
python3などとしてバージョンを指定する必要はない。勝手に一番新しいやつが入ってくれる。
各種パッケージのインストール
scipy、numpyのインストール
まずはこの2つから。
先にseabornのインストールでド偉い量のエラーに見舞われたと書いたが、エラーメッセージ的にscipyのインストールで死んでいるようだった。これは、M1 Macでのpip
ではscipyを入れることができないから。まだ未対応らしい。
しかし、Homebrewからscipyを入れることでこの問題は解決する。
% brew install scipy
なお、scipyのインストールと同時にnumpyもインストールされる。scipyはnumpyに依存しているので。
seaborn、matplotlib、pandasのインストール
最後にこの3つ。これらはbrew install
ではなく、pip install
を使用する。
% pip install seaborn
seabornはmatplotlib、pandasに依存しているため、これだけで上記3つのインストールが完了する。
numpyやmatplotlibをすでに導入している人へ
僕は試していないが、numpyが入ったままscipyをHomebrewからインストールすると、同時に入るnumpyとおそらく競合する。それを避けるために一度アンインストールしておく必要がある。また、matplotlibなど、numpyに依存するパッケージもアンインストールの必要がある。
% pip uninstall numpy
% pip uninstall matplotlib
% brew install scipy
% pip install matplotlib
まとめ
pip
一発でPythonの環境構築ができないM1 Macだが、これでも発売当初よりはかなり楽になってきたようだ。
新Apple Silicon搭載MacBook Proの噂もチラホラ聞こえるので、もっと楽に環境構築できるようになってほしい。
お前がOSSに貢献しろ