Windowsのようには・・・
WIndows 10搭載ノートPCで「TensorFlow」を試用しています。
Macでも同じように使うつもりで、インストールしようとしたところ、WIndowsとは違い思った以上に手こずりました。
忘備録としてインストールまでの手順をメモしておくことにしました。
”自分は「R」は多少使えますが、「Python」は触り始めてから1ヶ月程度と、初心者レベルです。
このため、以下の手順には正解でない部分も含まれていると思います。”
WIndowsノートPCで使っていたサンプルプログラムを動かそうと思っていましたが、とりあえずインストールの確認までをゴールにしました。
以下のように「import tensorflow」を実行してエラーを出さないことを目的に進めました。
(base)MacBook ~ % python
Python 3.9.12 (main, Apr 5 2022, 01:52:34)
[Clang 12.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information
>>> import tensorflow
>>>
なお、頻繁に出たエラーが以下のメッセージです。
ModuleNotFoundError: No module named 'tensorflow'
Anacondaと共存できる?
”色々なコマンドを使っていますが、使う端末の環境によって異なると思います。
例えば、以下記述のように「Ananconda」を使用した環境に「Miniconda」を入れていますが、「Anancondaをアンインストールしてから」と書いてあるサイトもありました。”
なお、先に「Anaconda」をインストールして使っていました。
Appleのサイトなどから「TensorFlow」を使用するためには、「Miniconda」(miniconda3)を使うことが確認できたので、このパッケージのインストールに進みます。
「Anaconda」をアンインストールをすることも考えましたが、まずは残したまま試すことにしました。
結果的には「import tensorflow」を実行できたので、共存はできたようですが、「Jupyter Notebook」を使えることも確認したいので、これは別の日に試します。
ターミナルを起動して仮想環境の「base」がアクティベートされている場合はここから抜けます。
# 仮想環境の「base」を閉じる
(base) MacBook ~ %
conda deactivate
MacBook %
アンインストール
以下の手順に進むまでに、「Miniconda」や「TensorFlow」をインストールして失敗しています。
(何回も繰り返しています)
このため、「Miniconda」をアンインストールして仕切り直します。
# miicondaディレクトリ削除
rm -rf ~/miniconda3
# minicondaの記述を削除(後述)
nano ~/.zshrc
nano ~/.bash_profile
# 関連ファイルの削除
rm -rf ~/.condarc ~/.conda ~/.continuum
「Miniconda」の設定の記述も削除します。
今回は「nano ~/.zshrc」で以下の記述を削除しました。
# nanoエディタで以下を削除
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/xxxxx/opt/miniconda3/bin/conda'
# (略)・・・
# <<< conda initialize <<<
「TensorFlow」もアンインストールします。
# tensorflowをアンインストール
python -m pip uninstall tensorflow-macos
python -m pip uninstall tensorflow-metal
Minicondaインストール
ターミナルを立ち上げると、仮想環境「base」がアクティベートされるので抜けます。
(base)MacBook ~ % conda deactivate
MacBook ~ %
「Miniconda」をダウンロードします。
上記のAppleのサイトではなく、condaのサイトから「Python 3.9」の「Miniconda3-py39_4.12.0-MacOSX-arm64.sh」をダウンロードしました。
「Miniconda」をインストールします。
# chmod でファイルのパーミッション変更
chmod +x ~/Downloads/Miniconda3-py39_4.12.0-MacOSX-arm64.sh
# Mnicondaのインストール
sh ~/Downloads/Miniconda3-py39_4.12.0-MacOSX-arm64.sh
TensorFlowインストール
「base」環境をアクティベートしAppleのサイトの通りに「TensorFlow」をインストールします。
# baseをアクティベート
source ~/miniconda3/bin/activate
# Install base TensorFlow
python -m pip install tensorflow-macos
# Install tensorflow-metal plug-in
python -m pip install tensorflow-metal
インストールされているか確認します。
#condaでインストールしたパッケージを確認
conda list
# packages in environment at /Users/hiro_ogawa/miniconda3:
#
# Name Version Build Channel
absl-py 1.3.0 pypi_0 pypi
astunparse 1.6.3 pypi_0 pypi
brotlipy 0.7.0 py39h1a28f6b_1002
# (略) ・・・
tensorflow-estimator 2.10.0 pypi_0 pypi
tensorflow-macos 2.10.0 pypi_0 pypi
tensorflow-metal 0.6.0 pypi_0 pypi
# (略) ・・・
Pythonを起動し、TensorFlowをimportできることを確認できました。
「import tensorflow」を実行し、エラーが出ず「>>>」が表示されれば成功だそうです。
# インストールに失敗している場合「 import tensorflow」実行後エラーが出る
(base) MacBook % python
Python 3.9.12 (main, Apr 5 2022, 01:52:34)
[Clang 12.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow
>>>
今回の目的は達成できました。
メモ
実際には他にもうまくいかないことが起こり、上述以外のコマンドも実行しています。
その例をいくつか記載しておきます。
コマンドラインツールのエラーが出る場合、「xcode-select」をインストールしています。
# xcode-selectのバージョン確認(入っているか確認)
xcode-select -v
# xcode-selectのインストール
xcode-select --install
「import tensorflow」で「RuntimeError:・・・」というエラーが出る場合の対処です。
「numpy」をアップデートしました。
>>> import tensorflow
RuntimeError: module compiled against API version 0x10 but this version of numpy is 0xf
#「numpy」をアップデートして解決
sudo pip install numpy --upgrade --ignore-installed
一番手こずったのが(わからなかったのが)以下のエラーです。
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> grpcio
「grpcio」はRemote Procedure Call:遠隔手続き呼び出しのパッケージだそうです。
「Miniconda」と関連しているように思えなかったのですが、複数のパッケージのインストールやアンインストールを繰り返した中で削除してしまったのかもしれません。
以下の手順でエラーをなくせました。
# 「grpcio」をインストールする前のセッティング
GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=true
GRPC_PYTHON_BUILD_SYSTEM_ZLIB=true
# 「pip」と「setuptools」をアップデート
pip3 install --upgrade pip
pip3 install --upgrade setuptools
# 「grpcio」をインストール。「GRPC_PYTHON・・・」を実行しないと、
# 「grpcio error: legacy-install-failure」というエラーが出た
pip3 install --no-cache-dir grpcio