bash脚本来停用conda环境

时间:2019-06-10 22:11:40

标签: conda virtual-environment

在用户提出建议之后,我正在修订此问题,以更加集中地关注“为什么我不能从shell脚本运行conda命令”这一问题。

我的默认conda环境名为“ py37”。 Shell启动,我可以停用:

(py37) pauljohn@delllap-16:Desktop$ conda deactivate
pauljohn@delllap-16:Desktop$

我想用一个短名称创建一个shell脚本,以完成相同的工作。我尝试了几种变体,例如,一个名为“ noconda.sh”的文件:

$ cat noconda.sh
#!/bin/bash

eval "conda deactivate"   

很明显,这是失败的:

 pauljohn@delllap-16:bin$ noconda.sh

CommandNotFoundError: Your shell has not been properly configured to use 'conda deactivate'.
To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

我发现,如果conda功能处于活动状态,我使用的其他许多项目都无法正常工作。

您可能会问我的.bashrc中有什么:

# added by Anaconda3 2018.12 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/pauljohn/LinuxDownloads/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    \eval "$__conda_setup"
else
    if [ -f "/home/pauljohn/LinuxDownloads/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/pauljohn/LinuxDownloads/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base 
    else
        \export PATH="/home/pauljohn/LinuxDownloads/anaconda3/bin/:$PATH"
    fi
fi
unset __conda_setup
# <<< conda init <<<

# help with conda bug accessing gsettings:
# https://github.com/conda-forge/glib-feedstock/issues/19
export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/

conda deactivate
conda activate py37

2 个答案:

答案 0 :(得分:0)

有人应该给我+1,以发布这个好问题:)

这里是解决方法。

在〜/ .bashrc的末尾,插入以下内容:

alias noconda='conda deactivate'

然后,从外壳“ noconda”执行命令即可完成操作。

希望我能找到可以完成相同操作的shell脚本,并且跨帐户更便于移植。

答案 1 :(得分:0)

根据此answer,如果使用sh启动bash -i noconda.sh文件,则conda deactivate可以正常工作。检查原始答案以找出原因。