繁体   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