簡體   English   中英

conda - 魚中的 PATH 順序 shell

[英]conda - PATH order in fish shell

我在 Ubuntu 20.04 上使用 miniconda 和魚 shell。我能夠創建並激活我的特定環境。 我的問題是與$PATH相關的 Python 版本。

  1. 當我開始清潔魚 shell 時,conda 將其設置為(基本)環境$PATH如下所示:

PATH=/opt/conda/bin:/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/conda/bin:/snap/bin:/opt/conda/bin

這意味着,當我啟動 Python 時,它使用/opt/conda/bin/python版本 - conda(基本)版本。

  1. 當我啟動我的環境conda activate XXX時,它切換到 XXX(更准確地說,從 base 切換到 XXX)並且我的$PATH如下所示:

PATH=/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/USER/.conda/envs/XXX/bin:/snap/bin:/opt/conda/bin

這意味着,當我啟動 Python 時,它使用/usr/bin/python 系統版本為Python。

  1. 當我啟動新魚 shell 時,停用(基礎)環境並激活創建的魚(XXX), $PATH如下所示:

PATH=/home/USER/.conda/envs/XXX/bin:/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/conda/bin

這意味着,當我啟動 Python 時,它使用/home/USER/.conda/envs/XXX/bin/python

問題:

  • 每當我使用 XXX 環境時,我都希望使用/home/USER/.conda/envs/XXX/bin/python ,當我從 (base) 切換到 (XXX) 時,這是不正確的。 要在 python 以上使用,我需要停用 base,然后切換到 (XXX)。 它接縫, /home/USER/...應該始終在 $PATH 的開頭以選擇合適的 python 版本。

  • 當我啟動新的 shell 時,我不想使用 (base) 作為默認設置。我已經嘗試過config --set auto_activate_base falseauto_activate_base: false添加到./condarc但它似乎被忽略了。

我的 conda 版本是 4.8.3。 我的~/.config/fish/config.fish包含: eval /opt/conda/bin/conda "shell.fish" "hook" $argv | source eval /opt/conda/bin/conda "shell.fish" "hook" $argv | source

我做錯了什么? 我該如何糾正它?

我在 Ubuntu 20.04 上使用 miniconda 和魚 shell。 我能夠創建和激活我的特定環境。 我的問題是與$PATH相關的 Python 版本。

  1. 當我開始清理魚 shell 時,conda 為(基本)環境$PATH設置它如下所示:

PATH=/opt/conda/bin:/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/conda/bin:/snap/bin:/opt/conda/bin

這意味着,當我啟動 Python 時,它使用/opt/conda/bin/python版本 - conda(基本)版本。

  1. 當我啟動我的環境conda activate XXX時,它切換到 XXX(更准確地說,從基礎切換到 XXX),我的$PATH看起來像這樣:

PATH=/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/USER/.conda/envs/XXX/bin:/snap/bin:/opt/conda/bin

這意味着,當我啟動 Python 時,它使用/usr/bin/python 它是 Python 的系統版本。

  1. 當我啟動新魚 shell,停用(基礎)環境並激活創建的環境(XXX)時, $PATH如下所示:

PATH=/home/USER/.conda/envs/XXX/bin:/opt/conda/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/conda/bin

這意味着,當我啟動 Python 它使用/home/USER/.conda/envs/XXX/bin/python

問題:

  • 每當我使用 XXX 環境時,我都希望使用/home/USER/.conda/envs/XXX/bin/python ,當我從 (base) 切換到 (XXX) 時,這是不正確的。 要使用以上 python 我需要停用基礎,然后切換到(XXX)。 它接縫, /home/USER/...應該始終位於 $PATH 的開頭以選擇適當的 python 版本。

  • 當我啟動新的 shell 時,我不想使用 (base) 作為默認值。 我試過config --set auto_activate_base falseauto_activate_base: false添加到./condarc但它似乎被忽略了。

我的 conda 版本是 4.8.3。 我的~/.config/fish/config.fish包含: eval /opt/conda/bin/conda "shell.fish" "hook" $argv | source eval /opt/conda/bin/conda "shell.fish" "hook" $argv | source

我做錯了什么? 我該如何糾正?

你可以在一行中完成,不要打擾自己(MacOS 和 Linux)

/(your conda installation path)/bin/conda init fish

你的公寓安裝通常在 '/Users/- your UserName -/anaconda3'

如果有人想了解安裝 fish,最好的方法是 Homebrew。 brew install fish之后,您必須將 fish 添加到/etc/shells中的可支持 shell。 然后使用 chsh 將默認值 shell 更改為 fish。 如果不清楚請評論!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM