python

MacOSにminiforgeをインストールしたので手順共有するよ

2024-06-07

新しくMacBookを購入したので、さっそくPython実行環境としてminiforgeを入れ直しました。備忘録としてminiforge使ったことないんだよねって人向けに、関連情報や手順をまとめておきました。

なぜminiforge?

Python実行環境をインストールする際の選択肢が色々ある中で、Anaconda系を選択した場合でも、Anaconda、minoconda、miniforgeなどの派生版があります。

そんななかケンヂまるが自分の環境に採用しているのはminiforgeです。

Anacondaの特徴

AnacondaはAnaconda社主体で開発しているPythonとRの実行環境で、最もサポートが手厚く、Anaconda NavigatorというGUIベースの環境管理ツールが使えます。

Anacondaは初心者にも使いやすい環境が整っていて便利であるものの、従業員200人以上の会社は無料で使用することはできません。

minicondaの特徴

minicondaもAnaconda社主体で開発されていますが、環境管理にAnaconda Navigatorは使えず、シェル上からcondaコマンドを使う必要があり、初心者が使うには敷居が高めです。

miniforgeの特徴

miniforgeは機能や使い方はminicondaとよく似ていますが、開発はAnaconda社主体ではなくコミュニティが主体です。

miniforgeはApple社のデバイスでAppleシリコンが採用さた際に、Anacondaやminicondaより素早く対応しました。

conda-forge/miniforgeでは、のx86_64、ppc64le、aarch64アーキテクチャへの対応に注力していると宣言していて、今後も環境にかかわらず快適に使っていけそうです。

ケンヂまるはMac OSユーザーでありAppleシリコン環境ということもあり、miniforgeを積極的に使っています。

Anaconda系は従業員が200人以上の会社だと費用が発生してしまうというところ、miniforgeであれば無料で使用可能という点も安心ポイントです。

miniforgeのインストール

実際にインストールした内容を共有しておきます。

慣れている人はconda-forge/miniforgeを参照すればスラスラできるはずなので、ぜひ本家のドキュメントを見ながらのインストールに挑戦してみて下さい。本家のほうが常に情報も最新ですし。

ということでここからは、本家ではなくケンヂまるのイカした情報を見ながらインストールしたいよって方に向けての内容になります。

まずターミナルを起動してコマンドを実行します。

curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh

インストール場所はデフォルトの/Users/jimaru/miniforge3を選択。(jimaruはケンヂまるのユーザーなので、ご自分のユーザー名に修正されたし)

インストール時に表示されるメッセージの最後のほうに、ターミナルからcondaコマンドやpythonコマンドを利用するために「この設定してね」的なメッセージがあるので、それを参考にしながら設定を続けます。

具体的には、~/.zshrcに次の行を追加します。(またjimaruが登場したけどここもご自分のユーザー名に修正してくらさい)

eval "$(/Users/jimaru/miniforge3/bin/conda shell.zsh hook)"

そしてターミナルを立ち上げ直すと、(base) jimaru@air ~ %みたいな感じにプロンプトの先頭に(base)が追加されているはずです。

次に、conda initコマンドを1度だけ実行します。

conda init

これで、miniforgeのインストールは完了です。

miniforge環境の作成と設定

miniforgeは用途に応じていくつもの環境を作成・管理することができます。

conda env listコマンドで、miniforgeで利用できる環境一覧を表示できます。

(base) jimaru@air ~ % conda env list
base                  *  /Users/jimaru/miniforge3

conda envコマンドについての詳細は、conda —helpでは表示されず、conda env —helpで表示されます。…隠しコマンドかっ!!

インストールしたてほやほやなので、base環境しかありません。

base環境のPythonバージョンを確認してみます。conda listコマンドを実行します。

(base) jimaru@air ~ % conda list

〜省略〜
python                    3.10.14         h2469fbe_0_cpython    conda-forge
~省略~

インストールされているパッケージがだーーーーっと出てきますが、その中のpythonの行を確認すると、base環境のPythonバージョンがわかります。確認すると、バージョンは3.10.14でした。

2024年6月時点ではPython3.12が既に登場しているので、バージョンアップしておきたいですね。

conda環境で使用可能なPythonのバージョンを確認してみましょう。conda search pythonコマンドを使います。

conda search python | grep python

〜省略〜
python   3.12.3 h4a7b5fc_0_cpython  conda-forge

現時点でpython3.12.3まで使えることがわかりました。(出力が多すぎるので、grep pythonにパイプして出力を制限しています)

ということで、base環境を最新のバージョンに変更。

(base) jimaru@air ~ % conda install -n base python=3.12.3

(base) jimaru@air ~ % python -V
Python 3.12.3

Python3.12.3が使えるようになりました。

別の環境を作成する

miniforgeをインストールするとデフォルトのbase環境のみが作成されているものの、他の環境も作成することができます。

ケンヂまるはJupyter Notebookをよく使うので、jupyterという環境を作成しておきます。Jupyter Notebookの環境に求められるものは、最新バージョンのPythonと、使うかもしれないパッケージを片っ端からぶち込んであることです。

環境を作成

conda createコマンドで環境を作成します。-nオプションで、作成する環境の名前を指定することができます。

conda create -n jupyter

実際に作成されたか、環境一覧を表示して確認。

(base) jimaru@air ~ % conda env list
# conda environments:
#
base                  *  /Users/jimaru/miniforge3
jupyter                  /Users/jimaru/miniforge3/envs/jupyter

jupyter環境が作成されていますね。*がついているのが、現在アクティブになっている環境です。

jupyter環境に切り替えます。conda activateコマンドを使います。

(base) jimaru@air ~ % conda activate jupyter
(jupyter) jimaru@air ~ % 

プロンプトが(jupyter) jimaru@air ~ %に切り替わり、jupyter環境がアクティブになったことがわかります。

環境にインストール

まずはjupyter環境にインストールされているパッケージを確認します。現在の環境のパッケージを確認するコマンドはconda listでしたね。

(jupyter) jimaru@air ~ % conda list
# packages in environment at /Users/jimaru/miniforge3/envs/jupyter:
#
# Name                    Version                   Build  Channel

何もインストールされていません。パッケージどころか、Pythonすら準備できていない状態です。

ということでまずは、2024年6月時点で最新のPythonをインストールします。Pythonのインストールはパッケージのインストールと同じconda installです。(conda系ではPythonもパッケージとして管理されているため)

(jupyter) jimaru@air ~ % conda install python=3.12.3

続いてJupyter Notebookを使うことを想定し、手当たり次第に思い浮かぶパッケージをインストール。歳のせいかすぐにパッケージが思い浮かばなかったので、ここでは2つだけに😭

(jupyter) jimaru@air ~ % conda install pandas jupyter

インストールできたか確認。

(jupyter) jimaru@air ~ % conda list
# packages in environment at /Users/jimaru/miniforge3/envs/jupyter:
#
# Name          Version        Build  Channel
(略)
jupyter         1.0.0      pyhd8ed1ab_10    conda-forge
(略)
pandas          2.2.2      py312h8ae5369_1    conda-forge
(略)
python          3.12.3     h4a7b5fc_0_cpython    conda-forge

Pythonも最新のバージョンで、先ほどconda installで指定したjupyterpandasもインストールされていて、さらにそれらの依存パッケージも大量にインストールされているのが確認できれば問題なしです。

おさらい

今回は、miniforgeをMac OSにインストールし、base環境のpythonを最新版に更新し、さらにjupyter環境も作成し、いくつかのパッケージをインストールしました。

環境はいくつでも作成することができ、conda activateコマンドで切り替えたり、インストールされているパスを直接指定して実行することもできます。例えば、jupyter環境を使いたい場合、conda activate jupyterとして有効化してもいいし、/Users/jimaru/miniforge3/envs/jupyter/bin/pythonのパスを指定して直接実行してもOKです。(jimaruの部分はあなたのユーザー名で置き換えて下さい)

今回ケンヂまるが設定した部分以外にも、環境を作る際に名前ではなくパスを指定することができたり、テンプレートファイルから環境作成できたり、既存環境を.lockファイルにエクスポートできたりと、知っていると役立つかもしれない便利機能もあります。

この辺りの機能、ケンヂまるは滅多に使わないのですが、気になった方はConda Managing environmentsあたりを参照してみて下さい。(記事後半になって丸投げするやーつ)

-python

© 2024 ヂまるBlog