Mac/LinuxのPython環境をMiniForgeで構築
Mac/LinuxのPython環境構築をMiniForgeで行う理由
※ 注意事項: この記事は、あくまで自分が個人の趣味として使うにはMiniForgeが良かったという内容です。業務での使用、Pythonのライブラリ開発者などは一切想定しておりませんので、その前提でご覧ください。
Pythonのパッケージ管理ソフト、様々なものがあります。pip,pipenv,poetry,virtualenv,pyenv,pyenv-virtualenv,Anaconda。地獄ですか、ここは…
なぜこんなにあるのか、それぞれの違いは以下の ばんくし さんのブログ記事がとても詳しくまとまっています。
ただ、Apple Silicon Macになって状況は激変…pipで入れたパッケージ、動かないんです…そのあたりは、以下のZennの記事にとても詳しくまとまっています。
自分なりの結論としては、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で構築することにしました。
最近は、Linux環境でもMiniForgeを使っていますが、pyenvと組み合わせて使っています。以下記事参照ください。
Mac/LinuxへのMiniForgeセットアップ方法
最初が、プラットフォームにより少し異なります。
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
Linux(X86 CPU)の場合は以下です。
$ wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh
$ bash Miniforge3-Linux-x86_64.sh
その他のプラットフォームに関しては、以下README参照ください。リストにあればインストールできると思います。
途中、いくつか質問が出てきますが、言われるがままにyesとかEnterを入力していればインストール完了します。
以降は、Intel Mac, Apple Silicon Macで共通です。以下コマンドでMiniForgeにPython3.8環境を構築します。
まず新しいターミナルを開きましょう(もしくは source ~/.bashrc
を実行しましょう)。
そして以下コマンドで新しいPython仮想環境を構築します。
$ conda create --name python38 python=3.8
次に以下コマンドで作成した仮想環境をアクティベートします。これでPythonの仮想環境が使えるようになりました。
$ conda activate python38
MiniForgeを使いたくないときは、以下コマンドを実行しましょう。
$ conda deactivate python38
ライブラリのインストールは、基本的にはconda install xxx
とMiniForgeのパッケージ管理でインストールする方が安定して動作するのでおすすめです。
動かなかったらpip
でインストールします。
その他の使い方は、Condaの使い方を見ればよいのかな?(MiniForge自体のドキュメント、いまいち見当たりませんでした)。
condaのコマンド
よく使うのは、作成した環境の一覧を表示する以下コマンドです。
$ conda env list
その他は、公式の以下マニュアル参照ください。
pyenv/pyenv-virtualenv等を入れていた場合
MiniForgeと競合してうまく動かない場合があるようです。Macの場合は、以下コマンドでアンインストールしましょう。
$ brew remove pyenv-virtualenv
$ brew remove pyenv
~/.bashrc
や~/.zshrc
に記載している設定も合わせて消しておきましょう。
miniforgeをアンインストールする方法
miniforgeをアンインストールしたい場合は、以下コマンドで可能です。
$ rm -rf $(conda info --base)
$ rm -rf ~/.conda
加えて~/.bashrc
に以下のようにconda initialize
で囲まれたcondaの設定スクリプトが書かれているので、エディタで手動で削除しておきましょう。
# >>> conda initialize >>>
# <<< conda initialize <<<
また、自分の環境ではJupyter Lab(Notebook)が以下のようなエラーで起動しなくなることがありました。
/home/<user name>/miniforge3/envs/<env name>/bin/python3: 誤ったインタプリタです: そのようなファイルやディレクトリはありません
~/.local/bin/jupyter
のPythonパスがminiforgeになっていたので、以下のように修正したら直りました。
#!/usr/bin/env python
Dockerを使ったPython環境構築
環境構築は、Dockerを使う方法もあります。こちらの方がより隔離性の高い使い捨ての環境を手軽に作れます。Dockerに関しては以下記事参照ください。
VS CodeエディタのRemote Containersを使う方法も便利です。こちらは、また別途まとめたいと思っています。とりあえず参考になりそうな記事を列挙しておきます。
まとめ
MacのPython環境構築に関して書きます。AnacondaからPyenvに行った後、Poetryなどに行かずまたAnaconda系に回帰するという…歴史は繰り返すといったやつでしょうか。
そのうちApple Silicon Macのライブラリをpipで簡単に入れられるようになれば、またMiniForgeなども不要になっていくのかなーとか思ったりしています。
関連リンク
参考になりそうな新し目の情報へのリンクです。まだ自分で試していないものも含まれています。
関連記事
Apple Silicon Macでディープラーニング環境まで構築する場合は、以下記事参照ください。
変更履歴
- 2021/10/04 Linuxでの環境構築に関して追記
Discussion