0
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.

【fish】bashのAnaconda環境をfishに移行する(PATHの通し方)

Last updated at Posted at 2021-06-01

はじめに

 シェルをbashからfishに乗り換えたら元々使ってたAnacondaのPATH設定をやり直す必要が出てきたけど,当てはまる記事があまりなくて躓いたのでメモ。

状況

  • fishインストールしてデフォルトシェルに設定済み
  • Anaconda(およびその仮想環境)もインストール済み
  • ↑但しfishでPATH設定してないのでcondaコマンドが使えない

PATHを通す

 fishではユニバーサル変数というfishセッション全てで共通して使える(=ターミナルを再起動しても不変)変数があり,PATH用には$fish_user_pathsというリストの変数が用意されてるのでそこに追加する事になる。
 以下のコマンドを実行するとPATHを追加できる。

fish
$ set -U fish_user_paths $HOME/opt/anaconda3/bin $fish_user_paths

これでPATHの追加は完了。(ちなみにPATHそのものである$HOME/opt/anaconda3/binの部分だけ書き換えれば他のPATHも同じように追加できる。)
ターミナルを再起動してecho $PATHを実行して下のように先ほど設定したPATHが表示されればOK。

fish
$ echo $PATH
/Users/{$USER}/opt/anaconda3/bin

でもこれではまだconda activateとかは使えないはず。どうやら現在のシェルに合わせてAnacondaの初期化が必要っぽいのでそれを実行。

fish
$ conda init fish

そしてまたターミナル再起動。これでconda activateとかもできるはず。

補足(備忘録)

  • $fish_user_pathsを含むfishのユニバーサル変数は全て~/.config/fish/fish_variablesに記述されてる。
    $fish_user_pathsは最後の方にあるはず。
~/.config/fish/fish_variables
#例
SETUVAR fish_user_paths:/Users/kimurafuga/opt/anaconda3/bin
  • 他の記事で~/.config/fish/config.fishにPATHを書き込めって書いてあるのもあったけど絶対ダメ!
    最初それを鵜呑みにしてそのconfig.fish(無かったので自分で作った)にさっきの
fish
$ set -U fish_user_paths $HOME/opt/anaconda3/bin $fish_user_paths

を書き込んだら一見PATHを通せた様に見えたけど,ターミナルを再起動するたびに新しくsetされちゃうみたいで気づいたら$fish_user_pathに10個近く同じPATHが上書きで追加されちゃってた。必ず上記のようにコマンドラインから設定すること。

0
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
0
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?