はじめに
突然ですが、皆さんはPythonの実行環境は何を使っていますか?
Anaconda?venv?色々ありますよね。
自分はMiniforgeを現在使用しています。あくまで個人の意見ですが、M1 macで機械学習をするならMiniforgeを使うのがベストプラクティスだと思います。ということで、この記事ではMiniforgeの環境構築の手順を書いていきます。ぜひ参考にしてみてください。
Miniforgeについて
Miniforgeとは、パッケージ管理システムのcondaをconda-forgeリポジトリで利用するためのツールです。
特徴として、M1 Macを含むマルチプラットフォームに対応していることが挙げられます。
現状、多くのライブラリにおいてM1 macに簡単にインストールするための唯一の手段となっています。
Pythonで機械学習をしていると必ず出会う、Tensorflowというライブラリがありますね。
私はTensorflowをanacondaにインストールしようとして沼りました。**m1 mac上のanacondaではtensorflowが使用できなかったのです。**なんてこった。
なぜMiniforgeがm1 macで機械学習をするのに優れているのか理解できましたでしょうか。
一言で言ってしまえばTensorflowが簡単に導入できるからです。(Transformerとかもね。)
早速Miniforgeの環境構築の手順について解説していきます。
Miniforge環境構築
Python本体のインストール確認
macにはPython自体はデフォルトでインストールされています。
デフォルトのPython以外は消してしまうことが望ましいです。
(私もいろいろな実行環境が混在していて大変なことになっていました…笑)
パスを確認しましょう。以下のコマンドを打ち、返ってきたパスが/user/bin/python3
であればデフォルトのPythonにパスが通っているのでOKです。
which python3
Homebrewをインストールしている方、多いと思います。
HomebrewにもPythonが存在している可能性があるので確認しましょう。
以下のコマンドでHomebrewのインストールパッケージ一覧を表示させ、Pythonが表示しないことを確認します。
brew list
Miniforgeのインストール
Pythonが他に存在しないことを確認したら、早速Miniforgeをインストールしていきましょう。
1. Minifogeをダウンロード
MiniforgeのGitHubページへアクセスし、以下のMiniforge3-MacOSX-arm64をダウンロードしてください。
(pypy, Mambaとか言うのもありますが一旦無視で。高速化を目的としたやつららしいです。知らんけど。)
2. ダウンロードファイルを実行
ターミナルからダウンロードフォルダへ移動し、ダウンロードしたMiniforge3-MacOSX-arm64.shを実行しましょう。
cd downloads
bach Miniforge3-MacOSX-arm64.sh
色々聞かれますが、Enterかyesをポチポチすれば大丈夫です。
3. condaを有効化する
インストール完了後、シェルを開き直し、以下のコマンドでcondaを有効化します。
conda activate
(base)
と表示された方は成功です。**4(仮想環境を作る)**に進みましょう。
zsh: command not found: conda
と表示され、実行できない方はPATHが通っているか確認していきましょう。
設定ファイル(.zshrc)を確認しましょう。ホームディレクトリから.zshrc
を開きます。
cd ~
open .zshrc
このようなテキストが表示されましたか?表示されていなければ、PATHがファイルに記入されていないので記入しましょう。[名前]と書いてある部分は自身のMacユーザー名を入力しましょう。
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/名前/miniforge3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/名前/miniforge3/etc/profile.d/conda.sh" ]; then
. "/Users/名前/miniforge3/etc/profile.d/conda.sh"
else
export PATH="/Users/名前/miniforge3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
これでもconda activate
ができない?zshが起動済みで変更内容が反映されていないのかも知れません。
実行中のzshに編集内容を反映させたい場合はsource
コマンドを使いましょう。
sourceはファイルからコマンドを読み込んで現在のシェルで実行するコマンドです。
以下のコマンドを実行してみましょう
source ~/miniforge3/bin/activate
(base)と表示されたのではないでしょうか?表示されていないのであれば、minifoge3というファイルがホームディレクトリにない可能性があります。場所を探してみましょう。
4. 仮想環境を作る
仮想環境を作りましょう。今はデフォルトの(base)
を有効化していますが、以下のコマンドで一旦有効化を止めましょう。(base)
が表示されなくなればOKです。
conda deactivate
tryという環境をつくって見ましょう。以下のコマンドを叩きましょう
conda create -name try python=3.9
処理が終わったらtry
を有効化してみましょう
conda activate
(try)
と表示されましたか?表示されたら成功です。**5(ライブラリをインストール)**へいきましょう。
表示されていない?こんなエラーが出ているのではないでしょうか?
Solving environment: failed
PackagesNotFoundError: The following packages are not available from current channels:
- try
Current channels:
- https://conda.anaconda.org/conda-forge/osx-arm64
- https://conda.anaconda.org/conda-forge/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
これ(PackagesNotFoundError
)はtryという環境を作成するためのリポジトリが見つからないと言われています。
はじめの方に記述しましたが、Miniforgeはcondaをconda-forgeリポジトリで利用するためのツールです。conda-forgeリポジトリが見つからないと言われている訳ですね。
指定して実行してあげましょう。
$ conda create -n try -c conda-forge python=3.9
これで行けたんじゃないでしょうか。
長かったですが、これでMiniforgeの環境構築は終了です!
後は必要なライブラリをインストールしていきましょう!
5. ライブラリをインストール
では作成した環境にライブラリを入れていきましょう。
とりあえず(try)
で進めていきますが、好きに仮想環境を作ってください。
tryを有効化しましょう
conda activate try
(try)が出たらライブラリをインストールしましょう。とりあえずnumpyを入れます。
conda install numpy
これで入ると思います。
他のライブラリを入れる場合も大抵は同様の感じで行けると思います。
Tensorflowのインストールはちょっと特殊なので書いておきます。
conda install -c apple tensorflow-deps -y
python -m pip install tensorflow-macos
python -m pip install tensorflow-metal
以上です。
まとめ
Miniforgeの環境構築はできましたか?
M1 macでごりごり機械学習していきましょう!!