Conda 命令在命令提示符下工作,但在 bash 脚本中不工作
Conda command working in command prompt but not in bash script
只要我通过 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
谢谢。
执行sudo ln -s /home/<user>/miniconda3/etc/profile.d/conda.sh /etc/profile.d/conda.sh
并重试。这应该永久地为所有用户激活 conda
感谢@darthbith 的评论,我解决了这个问题。
由于 conda
是一个 bash 函数并且 bash 函数不能传播到独立的 shell(例如通过执行 bash 脚本打开),因此必须添加行
source /opt/anaconda/etc/profile.d/conda.sh
在调用 conda 命令之前 到 bash 脚本。否则bash不会知道conda。
如果@randomwalker 的方法对您不起作用,任何时候您的脚本都是 运行 更基本的 shell,例如 sh,那么您有两个选择。
将此添加到您的脚本中:eval $(conda shell.bash hook)
调用您的脚本:bash -i <scriptname>
以便它 运行 在您的交互环境中。
假设您在登录时尝试使用 "miky" @ "server" address.First 访问用户名您的用户;使用“which 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" 就这些了。
只要我通过 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
谢谢。
执行sudo ln -s /home/<user>/miniconda3/etc/profile.d/conda.sh /etc/profile.d/conda.sh
并重试。这应该永久地为所有用户激活 conda
感谢@darthbith 的评论,我解决了这个问题。
由于 conda
是一个 bash 函数并且 bash 函数不能传播到独立的 shell(例如通过执行 bash 脚本打开),因此必须添加行
source /opt/anaconda/etc/profile.d/conda.sh
在调用 conda 命令之前 到 bash 脚本。否则bash不会知道conda。
如果@randomwalker 的方法对您不起作用,任何时候您的脚本都是 运行 更基本的 shell,例如 sh,那么您有两个选择。
将此添加到您的脚本中:
eval $(conda shell.bash hook)
调用您的脚本:
bash -i <scriptname>
以便它 运行 在您的交互环境中。
假设您在登录时尝试使用 "miky" @ "server" address.First 访问用户名您的用户;使用“which 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" 就这些了。