Conda命令在命令提示符下工作,但不在bash脚本中工作

时间:2018-10-12 11:55:18

标签: python linux bash anaconda conda

只要我通过Linux终端(bash shell)使用它,我的anaconda(4.5.4)都可以正常工作。但是,在bash脚本中运行conda命令根本不起作用。

脚本test.sh包含以下几行:

#!/bin/bash
conda --version
conda activate env

现在,运行bash test.sh会导致错误 test.sh: line 2: conda: command not found test.sh: line 3: conda: command not found

如推荐用于anaconda版本> 4.4,我的.bashrc不包含

export PATH="/opt/anaconda/bin:$PATH",

但是

. /opt/anaconda/etc/profile.d/conda.sh

谢谢。

4 个答案:

答案 0 :(得分:4)

由于@darthbith的评论,我解决了问题。

由于conda是bash函数,并且bash函数不能传播到独立的shell(例如,通过执行bash脚本打开),因此必须添加一行

source /opt/anaconda/etc/profile.d/conda.sh
在调用conda命令之前到bash脚本。否则bash不会知道conda。

答案 1 :(得分:0)

如果@randomwalker的方法对您不起作用,而您的脚本在诸如sh之类的更基本的shell中运行,则该方法将永远无法使用,那么您有两个选择。

  1. 将此添加到脚本中:eval $(conda shell.bash hook)

  2. 使用以下命令调用脚本:bash -i <scriptname>,以便脚本在您的交互式环境中运行。

答案 2 :(得分:0)

假设您尝试使用“ miky” @ “服务器” 地址访问用户名。首先,登录用户时;通过“ 哪个conda ”了解conda路径,那么您可能会获得诸如” / home / miky / anaconda3 / bin / conda”之类的路径 然后将您的conda命令如下(在我的示例中,我使用conda安装mysql插件。): shh miky @ server -t“ / home / miky / anaconda3 / bin / conda install -y -c anaconda mysql -connector-python“ 就这样。

答案 3 :(得分:-1)

执行sudo ln -s /home/<user>/miniconda3/etc/profile.d/conda.sh /etc/profile.d/conda.sh,然后重试。这应该永久激活所有用户的conda

source