LoginSignup
20
24

More than 1 year has passed since last update.

M1 Macでできるだけ楽にPython環境を構築する

Posted at

はじめに

seabornを使いたくてpip install seabornをしたらド偉い量のエラーに見舞われた。いい機会と考えてなあなあで構築していたPython環境をすべてリセットしてイチから構築し直した。

環境

  • M1 MacBook Air
  • macOS Big Sur 11.3.1

この記事でやること

  1. Homebrewのインストール
  2. Pythonのインストール
  3. 各種パッケージ(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に貢献しろ

20
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
24