只要我通过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
谢谢。
答案 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中运行,则该方法将永远无法使用,那么您有两个选择。
将此添加到脚本中:eval $(conda shell.bash hook)
使用以下命令调用脚本: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