Help us understand the problem. What is going on with this article?

macOS 10.15 CatalinaでAnacondaをインストールしようとしたらハマった

macOS 10.15 CatalinaでAnacondaをインストールしようとしたらハマったのでその事象と解決策を書いておきます。

前提

  • macOS 10.15.3 Catalina
  • Anaconda 2019.10 for macOS Installer (Python3.7) を使ってanacondaを入れる。
    • 今回はちょっと触ってみたいだけなので出来るだけpyenvとかの世話にはならない。

事象

MacでのAnacondaでのインストールは基本的に以下の手順です。 ref:公式ドキュメント

  1. GUIインストーラでぽちぽちOKを押す。
  2. Spotlight SearchからAnaconda Navigatorを起動できればOK。

スクリーンショット 2020-03-04 16.31.36.png

この画面が出ればOKです。簡単ですね。

で、私はSpotlight SearchからAnaconda Navigatorを起動しようとした時点で以下の表示が出ました。

[15:59:06]% /Users/{user_name}/opt/anaconda3/pkgs/anaconda-navigator-1.9.7-py37_0/bin/anaconda-navigator ; exit;
zsh: /Users/{user_name}/opt/anaconda3/pkgs/anaconda-navigator-1.9.7-py37_0/bin/anaconda-navigator: bad interpreter: /opt/anaconda1anaconda2anaconda3/bin/python: no such file or directory

:confounded: ひぇ〜

原因

そもそもAnacondaのGUIインストーラ君はなにをしてるのでしょうか?
彼がやってることは(今回の問題に関係するところだと)大きく2つです。

  1. ~/opt/anaconda3 配下に、 Python本体やライブラリなど配置する。
  2. ~/.bash_profile にPATHなどの設定を追記する。

~/.bash_profileに入る内容は具体的に以下。

# added by Anaconda3 2019.10 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/Users/{user_name}/opt/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    \eval "$__conda_setup"
else
    if [ -f "/Users/{user_name}/opt/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/Users/{user_name}/opt/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else
        \export PATH="/Users/{user_name}/opt/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda init <<<

で、実はMacのデフォルトのシェルはCatalinaでbashからzshになりました。
~/.bash_profile 読まれないじゃ〜んという話です。

というか、私が上に書いたエラーはそもそも ~/opt/anaconda3/bin/ 配下のanaconda-navigateではなく、
/Users/{user_name}/opt/anaconda3/pkgs/anaconda-navigator-1.9.7-py37_0/bin/anaconda-navigator を参照してます。
なんでやねん。

解決策

  1. ~/.bash_profile に追記されてた内容を ~/.zshrc にコピーする。
  2. ターミナルで env | grep PATH あたりで ~/opt/anaconda3/bin/にPATHが通ってるのを確認しましょう。
  3. ターミナルから anaconda-navigator を実行すればOKです。

落ち(この記事を書いたあとに気づいたこと)

公式ドキュメントにもありますが、実はLaunchPadにもショートカットが追加されていて、そこからAnaconda-Navigatorを起動すると ~/opt/anaconda3/Anaconda-Navigator を参照して起動するようです。Anaconda-Navigatorが色んな所にあり過ぎでわ。
まぁcondaコマンドとかを使うときに結局PATHを通す必要があるので、 ~/.bash_profile からの移植はやっておいたほうが良いと思います。

参考

  1. Anaconda を macOS にインストールする手順
  2. macOS 10.15 Catalina でターミナルのやつが zsh になった
kazasiki
IT企業に務めるプログラマ。ITとゲームとハードコアテクノをこよなく愛してます。クラブによく出没します。Youtube等でゲーム実況してます。IT系の勉強会とかよく行きます。 Ruby/C/C++/Python/Go/機械学習/Rails
http://kazasikipg.hatenablog.com/
persol
PERSOL(パーソル)グループは、人材派遣、人材紹介、求人広告をはじめとし、ITアウトソーシング、設計開発にいたるまで、国内外70社を超える幅広い企業群で構成されています。
https://www.persol-group.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away