如何为所有用户安装Anaconda Python?

56

Anaconda Python Distribution非常方便用于部署科学计算环境(SCE)并随意切换Python版本。默认情况下,安装会将Python定位到~/anaconda,并且SCE只能为本地用户提供帮助。

但是我需要使用完整的SCE Anaconda,并掩盖系统范围内的Python版本,因为我的集群正在运行Spark,并为我们团队中的多个用户提供服务。当前版本的Anaconda是否支持这种需求?

Xiaming

5个回答

61
安装程序可以安装在任何地方。您可以将其安装到全局位置,如/opt/anaconda

是的,就是这样。所有用户都可以访问这个全局路径。 - caesar0301
2
每个用户如何将此设置为他们的默认Python路径? - Elliott
每个用户都需要将其添加到他们的bash配置文件中的PATH。 - asmeurer
8
您还可以在/etc/profile中修改PATH,该文件会为所有用户执行。 - william_grisaitis
20
谢谢,更新: sudo mkdir /opt/anaconda && sudo chmod ugo+w /opt/anaconda,然后在安装时您可以指定路径为 /opt/anaconda/anaconda3。请注意,此指令将创建一个名为“anaconda”的文件夹,并授予用户、群组和其他人写入权限(ugo+w)以便安装程序能够在其中写入文件。 - tarabyte

7

将Anaconda路径添加到/etc/profile

对于Anaconda 2:

PATH=$PATH:$HOME/anaconda/bin

对于Anaconda 3:

PATH=$PATH:$HOME/anaconda3/bin

然后:

source /etc/profile

似乎应该放在/etc/environment中? - Lucas
好的,看起来/etc/environment是为与shell无关的应用程序而设计的。我最终在/etc/profile.d/中创建了一个conda.sh文件。但这会将'/anaconda/bin`中的所有内容添加到路径中,这似乎有些过度。我们拭目以待... - Lucas
1
这似乎对我不起作用。然而,我遇到了非常奇怪的行为 - 作为自己,我仍然可以执行 conda activate,一切似乎都很好,但是如果我尝试运行调用 conda activate 的脚本,我会收到错误信息 CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. - szeitlin
@szeitlin 你检查过是否正确将路径添加到了 /etc/profile 中了吗? - HISI
尝试过了,conda activate 是可以工作的,但它破坏了我路径中的其他一些东西,所以我不得不撤销它。 - szeitlin
显示剩余2条评论

3

1
anaconda-cluster的URL链接现在指向“https://www.continuum.io/why-anaconda” - 我猜他们改变了它的名称? - drevicko
它实际上已经再次更新了 - 有新的链接。现在称为Anaconda Scale https://docs.continuum.io/anaconda-scale/ - datakid
谢谢 @datakid。再次更新。 - Back2Basics

3

你需要把安装路径设置到对所有用户都可访问的路径中,/opt/YOUR_CONDA_DISTRIB_NAME是一个不错的选择。

但是你还需要添加conda的路径,这可以通过将以下shell脚本添加到其他用户的.bashrc文件中来自动完成。你可以在root用户的.bashrc文件中找到该shell脚本。为了记录,我在这里贴出它:


# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/YOUR_CONDA_DISTRIB_NAME/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/opt/YOUR_CONDA_DISTRIB_NAME/etc/profile.d/conda.sh" ]; then
        . "/opt/YOUR_CONDA_DISTRIB_NAME/etc/profile.d/conda.sh"
    else
        export PATH="/opt/YOUR_CONDA_DISTRIB_NAME/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<


附注:Anaconda常用的几个名称,用于YOUR_CONDA_DISTRIB_NAME

  • anaconda
  • anaconda3
  • miniconda
  • miniconda3

1

您还可以让任何需要运行conda的用户执行conda init命令,以自动更新他们的.bashrc文件,这样他们就能够使用conda环境。例如,在Linux中,如果Anaconda安装在/opt/anaconda3中:

$ /opt/anaconda3/bin/conda init
no change     /opt/anaconda3/condabin/conda
no change     /opt/anaconda3/bin/conda
no change     /opt/anaconda3/bin/conda-env
no change     /opt/anaconda3/bin/activate
no change     /opt/anaconda3/bin/deactivate
no change     /opt/anaconda3/etc/profile.d/conda.sh
no change     /opt/anaconda3/etc/fish/conf.d/conda.fish
no change     /opt/anaconda3/shell/condabin/Conda.psm1
no change     /opt/anaconda3/shell/condabin/conda-hook.ps1
no change     /opt/anaconda3/lib/python3.9/site-packages/xontrib/conda.xsh
no change     /opt/anaconda3/etc/profile.d/conda.csh
modified      /home/my.userid/.bashrc

==> For changes to take effect, close and re-open your current shell. <==

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接