无法在conda环境中访问激活,停用或conda

时间:2018-06-22 18:07:44

标签: python anaconda conda

因此,如果我加载conda环境并想使用conda安装软件包(或其他任何软件包),则必须指定conda.exe

我期望的工作:

(randomenv) λ conda --version
The system cannot find the path specified.

实际有效的方法:

(randomenv) λ conda.exe --version
conda 4.5.4

进一步复杂的事情,如下:

(randomenv) λ where conda
C:\Users\[USERNAME]\AppData\Local\conda\conda\envs\randomenv\Scripts\conda
C:\Users\[USERNAME]\AppData\Local\conda\conda\envs\randomenv\Scripts\conda.bat
C:\ProgramData\Anaconda3\Scripts\conda.exe

第一个条目应该是C:\Users\[USERNAME]\AppData\Local\conda\conda\envs\randomenv\Scripts\conda.exe并且环境设置错误吗?

编辑:

我们现在正在解决使用率中断问题。我不能使用deactivate,因为deactivate没有扩展名.exe

通常,where deactivate会出现:

C:\Users\[USERNAME]\AppData\Local\conda\conda\envs\randomenv\Scripts\deactivate
C:\Users\[USERNAME]\AppData\Local\conda\conda\envs\randomenv\Scripts\deactivate.bat
C:\ProgramData\Anaconda3\Scripts\deactivate
C:\ProgramData\Anaconda3\Scripts\deactivate.bat

更令人沮丧的是:

(randomenv) λ C:\Users\[USERNAME]\AppData\Local\conda\conda\endevs\randomenv\Scripts\deactivate
The system cannot find the path specified.

然后变得更好:

(randomenv) λ cd C:\Users\[USERNAME]\AppData\Local\conda\conda\envs\randomenv\Scripts\

C:\Users\[USERNAME]\AppData\Local\conda\conda\envs\randomenv\Scripts
(randomenv) λ ls
2to3.exe*       conda*          easy_install.exe*       epylint-script.py  iptest3.exe*        ipython-script.py  pip-script.py    pygmentize-script.py  pyreverse.bat        symilar.exe*
2to3-script.py  conda.bat       easy_install-script.py  idle.exe*          ipython.exe*        isort.exe*         pydoc.exe*       pylint.bat            pyreverse.exe*       symilar-script.py
activate*       deactivate*     epylint.bat             idle-script.py     ipython3.exe*       isort-script.py    pydoc-script.py  pylint.exe*           pyreverse-script.py  wheel.exe*
activate.bat    deactivate.bat  epylint.exe*            iptest.exe*        ipython3-script.py  pip.exe*           pygmentize.exe*  pylint-script.py      symilar.bat          wheel-script.py

C:\Users\[USERNAME]\AppData\Local\conda\conda\envs\randomenv\Scripts
(randomenv) λ deactivate
The system cannot find the path specified.

如何找不到当前目录中的文件????我完全不知道wtf正在进行吗。

Edit2:

找到以下内容issue on GitHub,该内容表示退出环境需要您activate root。这也不起作用,因为无法像上面列出的所有其他功能一样找到activate

2 个答案:

答案 0 :(得分:1)

这只是发生在我身上。这是我发现的。

在我的环境的scripts文件夹中有三个脚本:

activate.bat
conda.bat
deactivate.bat

以及另外三个不带.bat扩展名的bash脚本。在每种情况下,他们所做的只是使用绝对路径名委托给同一工具的全局安装副本。

当在提示符下给出命令(例如“ conda”)时,Windows将搜索找到的第一个.com,.exe或.bat文件来执行。由于激活环境会将其位置添加到路径的开头,因此第一个实例窗口将发现环境中的.bat文件,该文件将被执行。

在我的情况下,.bat文件的绝对路径错误,并试图委托给不存在的全局副本,因此出现错误消息。即使您位于环境脚本目录中,您仍会收到消息,因为它不是消息所引用的.bat文件,而是.bat文件所委托的程序。

在指定conda.exe时,专门要求提供.exe文件,这意味着将找不到并运行.bat文件,因此将找到全局副本,这当然可行。

我通过根据x的输出将每个.bat文件中的路径更改为工具的正确路径来解决该问题。

答案 1 :(得分:0)

我有同样的问题。有趣的是,当我设置一个新的环境时,activate / deactivate命令可以正常工作。

我将此环境的脚本文件夹与损坏的环境进行了比较。损坏的环境与您的脚本文件夹中的脚本一起具有激活/非激活文件,但工作环境却没有。

通过删除无关的脚本(停用,conda,激活,.pt-postlink),现在可以再次使用损坏的环境。

我怀疑我做了其他破坏该文件夹的事情。我安装的软件包可能是罪魁祸首吗?如果知道了,我会回发。