【问题标题】:Calling An Anaconda Environment from MATLAB: Conda Command Not Found从 MATLAB 调用 Anaconda 环境:未找到 Conda 命令
【发布时间】:2020-04-23 20:01:08
【问题描述】:

我想调用我在其自己的 Anaconda 环境中创建的 Python 脚本,并想从 Matlab 2020a 中调用该脚本。但是,当我尝试从 Matlab 激活环境时,我收到一条错误消息:

system('conda activate *name_of_environment*')
/bin/bash: conda: command not found

我在 Ubuntu 18.04 机器上安装了最新版本的 anaconda3 (2020.02),按照建议,没有将 conda 添加到 bashrc,而是按照建议添加了 conda.sh 目录 here

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

# export PATH="/home/michael/anaconda3/bin:$PATH"  # commented out by conda initialize

#Enable conda to be called from bash
source /home/michael/anaconda3/etc/profile.d

但是,我找不到如何从 Matlab 运行 conda 的解释。我错过了什么吗?

非常感谢,最好的,

迈克尔

【问题讨论】:

  • 尝试使用二进制文件的完整路径。

标签: bash matlab ubuntu anaconda environment


【解决方案1】:

让我在答案中详细说明我的评论。

通过PATH 环境变量可以找到二进制文件。 conda 的位置不在该变量中。因此,您应该将其添加到您的 PATH 变量中(或在您的通知中取消注释该脚本)。

例子:

$ export PATH="$PATH:/home/michael/anaconda3/bin/"
$ ./yourscript.sh

但也可能是PATH 变量没有通过system() 复制,我猜这是在新的shell 中执行脚本。在这种情况下,您应该将其执行为:

system('/home/michael/anaconda3/bin/conda activate *name_of_environment*')

【讨论】:

  • 您好,感谢您的回复!关于将 conda 添加到 PATH:我认为 Anaconda 不建议将其用于较新的版本(我不确定,为什么)?我尝试了较低的命令,它似乎找到了 conda,但没有找到激活命令:CommandNotFoundError:您的 shell 没有正确配置为使用“conda activate”。要初始化你的 shell,运行 $ conda init 当前支持的 shell 是: - bash - fish - tcsh - xonsh - zsh - powershell
  • 我不知道 Anaconda,但你正在做的(简化的)来自“Matlab shell”,执行一个“Bash shell”来执行“Anaconda shell”。 Matlab 到 Bash 可以工作,因为您收到错误,但 Bash 找不到 Anaconda。因此,您需要在 (Bash) shell 环境中添加它,或者确保 Bash 从 Matlab 获取到 Anaconda 的完整路径。
【解决方案2】:

我知道为时已晚,但使用 conda 环境运行 python 脚本的最佳方法可能是直接调用与该环境关联的 python 可执行文件:

system('~/anaconda3/envs/<name_of_environment>/bin/python your_script.py')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-22
    • 2018-04-08
    • 1970-01-01
    • 2020-04-08
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    相关资源
    最近更新 更多