为什么Anaconda source activate不存在?

16

我在Anaconda中成功创建了两个不同的Python环境,但似乎无法激活它们中的任何一个。我已经尽可能多地在Stackoverflow上阅读了有关此主题的信息,但没有解决我的问题。我添加了此问题中评论中要求的信息(Anaconda环境无法激活)。

当尝试激活环境时,控制台输出为-bash:activate:没有那个文件或目录

which conda的输出为/Users/username/anaconda3/bin/condatype source的输出是source是shell内置命令。 当尝试which activate时,Shell没有返回任何内容。

在我的bin文件夹中,我似乎也没有一个activate可执行文件,只有一个名为activate-global-python-argcomplete的文件。

为什么我缺少标准的activate文件,如何最好地解决这个问题?

9个回答

7

我遇到了类似的问题。在我的情况下,问题与使用 tcsh 有关,但是 activate 只支持 bashzsh

您可以使用命令 echo $0 检查当前使用的 shell。

为了使用 source activate 命令,您必须使用兼容的 shell。


那么,在tcsh上如何做到呢? - gota

5
我认为您可能安装了一个存在漏洞的anaconda版本,这个漏洞已经被迅速修补。
conda update conda

应该能够帮助您恢复并运行。


这是对我有效的解决方案。一开始 source activate 运行得很好,但在安装了一些包之后,我认为可能被损坏了。我担心是否需要重新安装整个Anaconda。谢谢你提供的简单解决办法。 - Ébe Isaac
这对我有用。在安装conda-env之前,source activate是有效的。 - João Abrantes

2

不要这样做!!!这会破坏我的dnf

首先,我尝试将源指向一个激活文件,

source /usr/lib64/python3.6/venv/scripts/common/activate environment

看起来似乎可以工作,但是没有实际的值被更新。我尝试了mattexx的答案,但它抱怨conda没有安装,所以我使用了。

conda install conda

由于它被安装到根环境中,我必须拥有root权限,但之后一切似乎都可以工作。

这就是导致我的Fedora安装失败的原因。


2
在 Fedora 中,可以通过软件包“conda-activate”安装 activate。 -> "sudo dnf install conda-activate" - Bertrand88
谢谢,这真的会帮了很多忙。真的很奇怪,conda可以在没有激活的情况下安装,因为那样它几乎没有用处。 - matt

2

打开新终端并重试。或者,输入hash -r看看是否有帮助。


非常遗憾,它完全没有任何影响。 - thenaturalist

1
我的问题是文件/opt/pycharm/plugins/terminal/.zshrc(使用ZSH)包含了一行source $JEDITERM_SOURCE。该变量包含了两个参数<path-to-anaconda-activate>/activate <path-to-anaconda>的正确路径,但显然它们被解释为单个参数:<path-to-anaconda-activate>/activate <path-to-anaconda>
我通过在该行前面添加eval来解决这个问题,使其变成eval source $JEDITERM_SOURCE。现在,该变量可以正确扩展。
如果您正在使用bash,则对/opt/pycharm/plugins/terminal/jediterm-bash.in进行相同的更改。

1

对我来说,tcsh 是问题所在。更改为 bash,一切都正常了。


1
你怎么做到的? - Marin

1
在这种情况下,问题可能是虚拟环境创建在/Users/username/anaconda3/envs/中,因此激活将在以下位置: /Users/username/anaconda3/envs/NAME_OF_YOUR_VIRTUAL_ENV/bin/activate 因此,要激活环境,您可以运行:
source /Users/username/anaconda3/envs/NAME_OF_YOUR_VIRTUAL_ENV/bin/activate

0

我正在PyCharm中使用bash shell,并通过进行以下更改来解决问题:

[~/opt/pycharm-community/plugins/terminal]$ diff jediterm-bash.in.old jediterm-bash.in
65c65
<   source "$JEDITERM_SOURCE"
---
>   eval source "$JEDITERM_SOURCE"

基本上是按照https://stackoverflow.com/users/1564931/netchkin建议所做的相同更改,但是更改的文件为~/opt/pycharm-community/plugins/terminal/jediterm-bash.in

这解决了我现有项目的问题。但是任何新项目似乎都没有尝试激活conda环境。在Pycharm 2017.1.2中创建的新项目似乎不会在启动终端插件会话时设置JEDITERM_SOURCE变量。

这个问题在https://youtrack.jetbrains.com/issue/PY-23417上有一个开放的问题。

看起来在4.4.0版本中对conda activate脚本进行了重大更改。请参见https://conda.io/docs/release-notes.html。如果我将conda降级到4.3.34,则可以再次在pycharm终端中使用conda虚拟环境。


0

对我来说,当我执行:

which conda

输出:

conda () {
    \local cmd="${1-__missing__}"
    case "$cmd" in
        (activate | deactivate) __conda_activate "$@" ;;
        (install | update | upgrade | remove | uninstall) __conda_exe "$@" || \return
            __conda_reactivate ;;
        (*) __conda_exe "$@" ;;
    esac
}

所以,为了激活我的环境,我做了:

source activate env

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接