Anaconda Python Distribution非常方便用于部署科学计算环境(SCE)并随意切换Python版本。默认情况下,安装会将Python定位到~/anaconda
,并且SCE只能为本地用户提供帮助。
但是我需要使用完整的SCE Anaconda,并掩盖系统范围内的Python版本,因为我的集群正在运行Spark,并为我们团队中的多个用户提供服务。当前版本的Anaconda是否支持这种需求?
Xiaming
Anaconda Python Distribution非常方便用于部署科学计算环境(SCE)并随意切换Python版本。默认情况下,安装会将Python定位到~/anaconda
,并且SCE只能为本地用户提供帮助。
但是我需要使用完整的SCE Anaconda,并掩盖系统范围内的Python版本,因为我的集群正在运行Spark,并为我们团队中的多个用户提供服务。当前版本的Anaconda是否支持这种需求?
Xiaming
/opt/anaconda
。将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`中的所有内容添加到路径中,这似乎有些过度。我们拭目以待... - Lucasconda activate
,一切似乎都很好,但是如果我尝试运行调用 conda activate
的脚本,我会收到错误信息 CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
- szeitlin/etc/profile
中了吗? - HISIconda activate
是可以工作的,但它破坏了我路径中的其他一些东西,所以我不得不撤销它。 - szeitlin你需要把安装路径设置到对所有用户都可访问的路径中,/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
您还可以让任何需要运行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. <==
/etc/profile
中修改PATH,该文件会为所有用户执行。 - william_grisaitissudo mkdir /opt/anaconda && sudo chmod ugo+w /opt/anaconda
,然后在安装时您可以指定路径为/opt/anaconda/anaconda3
。请注意,此指令将创建一个名为“anaconda”的文件夹,并授予用户、群组和其他人写入权限(ugo+w)以便安装程序能够在其中写入文件。 - tarabyte