MacのPython環境をMiniForgeで構築

3 min read読了の目安(約2900字

MacのPython環境構築をMiniForgeで行う理由

※ 注意事項: この記事は、あくまで自分が個人の趣味として使うにはMiniForgeが良かったという内容です。業務での使用、Pythonのライブラリ開発者などは一切想定しておりませんので、その前提でご覧ください。

Pythonのパッケージ管理ソフト、様々なものがあります。pip,pipenv,poetry,virtualenv,pyenv,pyenv-virtualenv,Anaconda。地獄ですか、ここは…

なぜこんなにあるのか、それぞれの違いは以下の ばんくし さんのブログ記事がとても詳しくまとまっています。

https://vaaaaaanquish.hatenablog.com/entry/2021/03/29/221715

自分自身はというと、長らくpyenv/pyenv-virtualenvを使っており、特に困ってもいませんでした。

https://karaage.hatenadiary.jp/entry/2016/04/04/073000

ただ、Apple Silicon Macになって状況は激変…pipで入れたパッケージ、動かないんです…そのあたりは、以下のZennの記事にとても詳しくまとまっています。

https://zenn.dev/osuzuki/articles/380be0f682d72d

自分なりの結論としては、Apple Silicon(M1 Mac等のArm CPU) Macを使うなら、Python環境はMiniForge一択ですね。Intel Macはに関しては、MiniForgeに変えなくてもよいのですが、「Apple Silicon MacとIntel Macで共通にしたい」「Intel MacでもMini Forgeじゃないと動かないライブラリがある」といった理由からこれを機にIntel MacもPython環境はMiniForgeで構築することにしました。

MacへのMiniForgeセットアップ方法

最初が、Intel MacとApple Silicon Macで少し異なります。

Intel CPUの場合は、以下コマンドでMiniForgeをインストールします。

$ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-x86_64.sh
$ bash Miniforge3-MacOSX-x86_64.sh

Apple Silicon Macの場合は以下コマンドでMiniForgeをインストールします。

$ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh
$ bash Miniforge3-MacOSX-arm64.sh

途中、いくつか質問が出てきますが、言われるがままにyesとかEnterを入力していればインストール完了します。

以降は、Intel Mac, Apple Silicon Macで共通です。以下コマンドでMiniForgeにPython3.8環境を構築します。

$ conda create --name python38 python=3.8

Python3.8環境をアクティベートします。これでPython3.8の仮想環境が使えるようになりました。

$ conda activate python38

MiniForgeを使いたくないときは、以下コマンドを実行しましょう。

$ conda deactivate python38

ライブラリのインストールは、基本的にはconda install xxxとMiniForgeのパッケージ管理でインストールする方が安定して動作するのでおすすめです。

動かなかったらpipでインストールします。

その他の使い方は、Condaの使い方を見ればよいのかな?(MiniForge自体のドキュメント、いまいち見当たりませんでした)。

https://conda.io/projects/conda/en/latest/user-guide/getting-started.html

pyenv/pyenv-virtualenv等を入れていた場合

MiniForgeと競合してうまく動かない場合があるようです。以下コマンドでアンインストールしましょう。

$ brew remove pyenv-virtualenv
$ brew remove pyenv

~/.bashrc~/.zshrcに記載している設定も合わせて消しておきましょう。

Dockerを使ったPython環境構築

環境構築は、Dockerを使う方法もあります。こちらの方がより隔離性の高い使い捨ての環境を手軽に作れます。Dockerに関しては以下記事参照ください。

https://karaage.hatenadiary.jp/entry/2019/05/17/073000

VS CodeエディタのRemote Containersを使う方法も便利です。こちらは、また別途まとめたいと思っています。とりあえず参考になりそうな記事を列挙しておきます。

https://qiita.com/IchiLab/items/c5660c96855d3f4b06a6

https://zenn.dev/karaage0703/books/80b6999d429abc8051bb

https://qiita.com/sonoisa/items/6d6b4a81169397a96dd8

https://zenn.dev/karaage0703/articles/1bdb8930182c6c

まとめ

MacのPython環境構築に関して書きます。AnacondaからPyenvに行った後、Poetryなどに行かずまたAnaconda系に回帰するという…歴史は繰り返すといったやつでしょうか。
そのうちApple Silicon Macのライブラリをpipで簡単に入れられるようになれば、またMiniForgeなども不要になっていくのかなーとか思ったりしています。

関連記事

Apple Silicon Macでディープラーニング環境まで構築する場合は、以下記事参照ください。

https://zenn.dev/karaage0703/articles/0ab9e654cfb0ec