長らくお待たせしました。いよいよ、M1 MacbookPro の M1チップに完全に対応した、Python 開発環境の構築を行いたいと思います。今回は、下記の動画を参考にしながら環境構築を行い、その過程をブログの記事にしました。
参考動画: M1 Mac に Python インストールして開発環境構築してみた(オサミーさん)
参考HP: 動画の資料
環境構築のポイント
環境構築の際は、以下に示すような違いに注意が必要だそうです。
・M1 Mac と Intel Mac
・Python2系と Python3系
【確認コマンド】 which python3 / python3 -V
・Python 仮想環境(venv, virtualenv, anaconda, miniconda, miniforge)
・Rosseta 上と ARMアーキテクチャ上の動作
【確認コマンド】 uname -m
【切替コマンド】 $ arch -x86_64 zsh / $ arch -arm64 zsh
Mac の環境
「動画」の環境 | 「私」の環境 |
Macbook Air (M1,2020) 16GB Big Sur v.11.1 | Macbook Pro (M1,2020) 16GB Big Sur v.11.4 |
python3 Python 3.8.2 /usr/bin/python3 | python3 Python 3.8.5 /Users/user/anaconda3/bin/python3 |
conda not installed | conda v.4.9.2 installed |
※ 私の環境の場合、既に存在する、anaconda3 による conda環境を閉じて(deactivate)から、作業を行う必要があります。 |
miniforge で conda をインストール
miniforge のダウンロード | https://github.com/conda-forge/miniforge OS X arm64(apple silicon) Miniforge3-MacOSX-arm64 |
現在の conda 環境の停止 | (base) % conda deactivate(必要に応じて) |
miniforge のインストール | % cd ~/Downloads % bash Miniforge3-MacOSX-arm64.sh |
.zshrc の読込による conda 環境の構築 | % cd ~ % source ~/.zshrc 【重要】ページの最後で解説 % cp .zshrc zshrc-miniforge3 ⏪ 必ず実行しておく |
conda 環境の停止 | (base) % conda deactivate |
new_env の作成 | % conda create -n new_env python=3.9 |
new_env の起動 | % conda activate new_env |
インストール済み パッケージの確認 | (new_env) % conda list |
conda 環境の確認 | (new_env) % conda deactivate % conda info -e |
※ 環境名である「new_env」は、自由に決めることが可能です。 |
conda で WEBアプリ開発環境の構築
webapp_env の構築 | (new_env) % conda deactivate(必要に応じて) % cd ~ % conda create -n webapp_env python=3.9 |
webapp_env の起動 | % conda activate webapp_env |
django のインストール | (webapp_env) % conda install django |
インストール状況の確認 | (webapp_env) % which django-admin → ~/miniforge3/envs/webapp_env/bin/django-admin (webapp_env) % conda list |
[ローカル] WEBサーバの構築 | (webapp_env) % mkdir py_pro(作業ディレクトリ) (webapp_env) % cd py_pro (webapp_env) % django-admin startproject helloworld |
WEBサーバの起動 | (webapp_env) % cd helloworld (webapp_env) % python manage.py migrate (webapp_env) % python manage.py runserver |
WEBサーバの起動確認 | http://127.0.0.1:8000/ にアクセス |
2回目以降 | % conda activate webapp_env (webapp_env) % cd py_pro/helloworld (webapp_env) % python manage.py migrate (webapp_env) % python manage.py runserver |
numpy や pandas を使うデータ分析環境の構築
ds_env の構築 | (webapp_env) % conda deactivate(必要に応じて) % cd ~ % conda create -n ds_env python=3.9 | |
ds_env の起動 | % conda activate ds_env | |
jupyter のインストール | (ds_env) % mkdir ds_pro(作業ディレクトリ) (ds_env) % cd ds_pro (ds_env) % conda install jupyter | または⏬ |
ライブラリの インストール | (ds_env) % conda install numpy (ds_env) % conda install pandas (ds_env) % conda install matplotlib | 行列計算 データ構造演算 グラフ描画 |
ライブラリの検索 インストール例 | https://anaconda.org/search (ds_env) % conda install -c conda-forge opencv (ds_env) % conda install -c conda-forge jupyterlab | ブラウズ ⏪ええよ! |
jupyter の起動 | (ds_env) % jupyter notebook or jupyter lab |
2回目以降は青字のみを実行 |
TensorFlow を使った深層学習の開発環境の構築
事前準備 | 必要かどうか分かりませんが |
Xcodeツールの ダウンロード インストール | https://developer.apple.com/download/all/ より Command Line Tools for Xcode 12.5 を選択 ダウンロードファイルを開いてインストール |
pipのupdate | https://bootstrap.pypa.io/get-pip.py を入手 python get-pip.py pip – -version → 21.1.2(当時) |
環境確認 | (base) % conda deactivate % python3 -V → Python 3.8.2 % which python3 → /usr/bin/python3 | ←ここから |
TensorFlowの コピー | % cd ~ % git clone https://github.com/apple/tensorflow_macos.git | |
ダウンロード インストール | % cd tensorflow_macos/scripts % bash download_and_install.sh | 警告表示 |
仮想環境の 起動 | % cd ~ % . tensorflow_macos_venv/bin/activate(動画) % source tensorflow_macos_venv/bin/activate | . を忘れずに または |
Python起動 | (tensor~venv) % python3 | command mode開始 |
動作確認 | >>> import tensorflow as tf >>> tf.__version__ >>> from tensorflow import keras >>> keras.__version__ >>> exit() (↑ ctrl-D でも終了可能) | インポート ver.確認 インポート ver.確認 終了 |
ライブラリの 確認 | % pip freeze | grep tensor | 必要なら |
2回目以降は青字のみを実行 |
keras で mnist を使って画像認識(深層学習)
作業場所の作成 | % cd ~ % mkdir dl_pro % cd dl_pro |
ファイルの作成 | % touch simple_mnist_convnet.py |
プログラムをコピペ | https://keras.io/examples/vision/mnist_convnet/ |
プログラムの実行 | % python simple_mnist_convnet.py |
補足説明【重要】
ここでは、全体を通じて、大切な事柄について補足説明をします。
実は、私自身が時間をおいて、このブログを見ながら設定を行ったところ、上手く動作しませんでした。それは、動画の通りにやっていただけで、基本的なことを理解していなかったためです。その時に必要だった事柄を書いておきます。ただし、これは、最後の「Tensorflow/Keras」の内容には関係がありません。
<ポイント> anaconda3 などの conda による、他の仮想環境を構築していた人が対象です。
対象外の人も、conda の命令表を最後に示してありますので参考にしてください。
さて、今回の環境構築は、「conda」という命令を使います。これにより仮想環境を構築します。そして、今回インストールする「Miniforge3」も、私が以前にインストールしていた「Anaconda3」も、同じ「conda」を使います。従って、これらを、明示的に切り替える必要があります。
そこで重要なのが、その両者をどのように切り替えるかです。実は、ターミナルを起動すると、自動的に、「Anaconda3ベース」の環境になってしまいます。従って、「conda create」や「conda activate」を実行すると、「Anaconda3」の仮想環境が作られたり起動されます。
そこで、「Miniforge3ベース」に切り替えるために、「source ファイル」という命令を用います。ここで、「source」の後に指定する「ファイル」が環境を決定します。今回の場合は、隠しファイルの「.zshrc」がそのファイルになります。そして、このファイルは、「bash Miniforge3-MacOSX-arm64.sh」を実行した直後に作られるものでなければなりません。
従って、「bash 〜」を実行後すぐに、「.zshrc」を別なファイルにコピーする必要があります。私の場合は、「zshrc-miniforge3」にコピーしました。
そして、2回目以降に既に設定した仮想環境を使う場合、ターミナルを起動して、必要に応じて「conda deactivate」で、現在の仮想環境を終了させます。それから、
「source zshrc-miniforge3」
を実行して、「Miniforge3ベース」の「conda」に切り替える必要があります。そして再度「conda deactivate」を実行して、設定のための環境を閉じます。その後に、本当に必要な環境を呼び出したり、新たに環境を作成したりしてください。この作業の過程で、現在使用中の環境が分かる「conda info -e」をこまめに使うことをお勧めします。
最後に、「conda」命令の使い方を紹介して、補足説明を終わりにします。
やりたいこと | 命令 | 使用例 |
新しい仮想環境を構築する | conda create | conda create -n new_env python=3.9 |
既に構築した仮想環境を起動する | conda activate | conda activate new_env |
起動した仮想環境を終了する | conda deactivate | conda deactivate |
構築した仮想環境を削除する | conda remove | conda remove -n new_env – -all |
ライブラリをインストールする | conda install | conda install numpy |
構築した仮想環境の情報を表示する | conda info | conda info -e |
コメント