因此,如果我加载了一个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.
它怎么找不到当前目录中的文件呢?
Edit2:
找到以下issue on GitHub,说明退出环境需要使用activate root
。这也不起作用,因为找不到像上面列出的所有其他函数一样的activate
。
发布于 2019-06-06 06:18:18
这事刚发生在我身上。这就是我所发现的。
在我的环境的脚本文件夹中有三个脚本:
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文件中的路径更改为工具的正确路径,从而修复了该问题。
发布于 2019-01-10 03:52:00
我也有同样的问题。有趣的是,当我设置一个新的环境时,激活/停用命令工作得很好。
我将此环境的脚本文件夹与损坏的环境进行了比较。被破坏的环境在脚本文件夹中有激活/停用的文件,就像您的一样,但工作环境没有。
通过删除无关的脚本(deactivate、conda、activate、..pt postlink),破坏的环境现在可以再次工作。
我怀疑我做的其他事情破坏了这个文件夹。可能是我安装的一个软件包是罪魁祸首?如果我弄清楚了,我会发回来的。
https://stackoverflow.com/questions/50993497
复制相似问题