首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法访问conda环境中的激活、停用或conda

无法访问conda环境中的激活、停用或conda
EN

Stack Overflow用户
提问于 2018-06-23 02:07:44
回答 2查看 1.3K关注 0票数 3

因此,如果我加载了一个conda环境,并且想要使用conda来安装一个包(或者其他任何东西),我必须指定conda.exe

我期望的是:

代码语言:javascript
复制
(randomenv) λ conda --version
The system cannot find the path specified.

实际有效的方法:

代码语言:javascript
复制
(randomenv) λ conda.exe --version
conda 4.5.4

使事情进一步复杂化的是以下几点:

代码语言:javascript
复制
(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会出现:

代码语言:javascript
复制
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

更可笑的是令人沮丧:

代码语言:javascript
复制
(randomenv) λ C:\Users\[USERNAME]\AppData\Local\conda\conda\endevs\randomenv\Scripts\deactivate
The system cannot find the path specified.

然后它变得更好:

代码语言:javascript
复制
(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.

它怎么找不到当前目录中的文件呢?

Edit2:

找到以下issue on GitHub,说明退出环境需要使用activate root。这也不起作用,因为找不到像上面列出的所有其他函数一样的activate

EN

回答 2

Stack Overflow用户

发布于 2019-06-06 06:18:18

这事刚发生在我身上。这就是我所发现的。

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

代码语言:javascript
复制
activate.bat
conda.bat
deactivate.bat

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

当给出一个命令时,比如提示符下的"conda“,Windows将搜索要执行的.com、.exe或.bat文件,取它找到的第一个文件。由于激活环境会将其位置添加到路径的头部,因此windows将在该环境中找到的第一个实例是.bat文件,该文件将被执行。

在我的例子中,.bat文件有错误的绝对路径,并且试图委托给一个不存在的全局副本,因此出现了错误消息。即使您在环境脚本目录中,您仍然会收到消息,因为消息引用的不是.bat文件,而是.bat文件委托给的程序。

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

我根据where x的输出将每个.bat文件中的路径更改为工具的正确路径,从而修复了该问题。

票数 2
EN

Stack Overflow用户

发布于 2019-01-10 03:52:00

我也有同样的问题。有趣的是,当我设置一个新的环境时,激活/停用命令工作得很好。

我将此环境的脚本文件夹与损坏的环境进行了比较。被破坏的环境在脚本文件夹中有激活/停用的文件,就像您的一样,但工作环境没有。

通过删除无关的脚本(deactivate、conda、activate、..pt postlink),破坏的环境现在可以再次工作。

我怀疑我做的其他事情破坏了这个文件夹。可能是我安装的一个软件包是罪魁祸首?如果我弄清楚了,我会发回来的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50993497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档