新しく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
で指定したjupyter
とpandas
もインストールされていて、さらにそれらの依存パッケージも大量にインストールされているのが確認できれば問題なしです。
おさらい
今回は、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あたりを参照してみて下さい。(記事後半になって丸投げするやーつ)