7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

macOS CatalinaにAnacondaを入れてもVSCodeで動かない

Posted at

#問題
VSCodeでAnacondaのpythonでなく、macOS標準のpythonが動いてしまいました。

#解決手段
.zshenvに"export PATH="を追加することで、VSCodeでもAnacondaのpythonを動かせるようになりました。

% vi ~/.zshenv
>> export PATH=

#原因究明
##参照先を確認
まずは参照先が違うんだろうなーと思ったところ、

% which python
terminal -> /Users/yuya/opt/anaconda3/bin/python
VSCode   -> /usr/bin/python

案の定、それぞれ異なるPATHのpythonを参照していました。なんで?

##PATHを確認
PATHが貼られていないのかと思ったので、見てみると、

terminal
% echo $PATH
/Users/user/opt/anaconda3/bin:/Users/user/opt/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
VScode
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/user/opt/anaconda3/bin:/Users/user/opt/anaconda3/condabin

PATHは貼られているが、優先順位が違う。なんで?

##なぜ優先順位が変わったか
いろいろググってみると、この記事でVSCodeの統合ターミナルで再度設定を読み直していることがわかりました。
さらに、この記事の参考記事で優先順位が変わることを言及していました。

どうも/etc/zprofileで動作するpath_helperの影響のようです。
path_helperはデフォルトPATH(/etc/pathsと/etc/paths.d/*で規定)を重複なく、PATHを再設定しているようです。その際、PATHのデフォルトPATHと重複した箇所は削除し、PATHの頭にデフォルトPATHを追記するため、PATHの順番が変わったのだと思われます。

###メカニズム(というほどでもないけど)
まずzshの設定が一通り読み込まれる。ここでは想定したPATHとなっています。
PATH=/Users/user/opt/anaconda3/bin:/Users/user/opt/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

次にVSCodeの統合ターミナルでもう一度、zshの設定が読み込まれるが、path_helperの動作により、デフォルトPATHが頭に移動しています。
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/user/opt/anaconda3/bin:/Users/user/opt/anaconda3/condabin

#zshのログイン時の設定
ここでログイン時にどのような設定ファイルが、どのような順番で読み込まれているのかが気になってきます。この情報はこの記事でわかりました。
/etc/zprofileより前の設定ファイル(.zshenv)でPATHを初期化してやれば

% vi ~/.zshenv
export PATH=

何度読み直しても同じPATHになるはずです。

##同じPATHになりませんでした
anaconda3/condabinが設定されなくなってしまいました...
多分、condaコマンドになにかしら値が設定されると、anaconda3/condabinのPATHは読まれないような設定になっているのでしょう、多分。
でも、やりたいことはできてるので、とりあえずよしとします。

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?