最近,我突然开始遇到 Anaconda 提示符和使用 VS Code 启动 jupyter 实例的问题。存在“访问被拒绝”错误,但即使作为管理员,我也收到一个错误,该错误提示我路径中存在空格问题。我从来没有遇到过这个问题,并且 anaconda 已经工作了一年多了。
所以,我卸载了 Anaconda 并完全重新安装了它。当我从开始菜单启动时,错误仍然存在。
Access is denied.
The system cannot find the file C:\Users\Ananth.
Could Not Find C:\Users\Ananth Mahadevan\AppData\Local\Temp\conda-16154.tmp
C:\Users\Ananth Mahadevan>
因此,当我在管理模式下运行 cmd.exe 并导航到 Anaconda3\Scripts 并运行 activate.bat 时,我仍然得到这个
C:\ProgramData\Anaconda3\Scripts>activate.bat
Not a conda environment: C:\ProgramData\Anaconda3\Scripts\Mahadevan\AppData\Local\Temp\conda-22297.tmp
然后我尝试专门激活底座并收到此错误
C:\ProgramData\Anaconda3\Scripts>conda activate base
activate does not accept more than one argument:
['base', 'Mahadevan\\AppData\\Local\\Temp\\conda-1957.tmp']
这个错误导致我https://github.com/conda/conda/issues/6704 ,但这似乎是一个老问题,看起来已经关闭了。我通过运行 PowerShell Anaconda 提示符对此进行了测试,并且 activate.bat 工作正常。
问题似乎出在 Scripts\activate.bat
上,它依次调用 condabin\conda.bat
condabin\_conda_activate.bat
我可以在其中看到创建唯一临时路径并尝试找到它的代码
@REM This method will not work if %TMP% contains any spaces.
:tmpName
@SET UNIQUE=%TMP%\conda-%RANDOM%.tmp
@IF EXIST "%UNIQUE%" goto :tmpName
@"%CONDA_EXE%" %_CE_M% %_CE_CONDA% shell.cmd.exe %* 1>%UNIQUE%
它清楚地表明,如果 temp 有任何空格,这将不起作用。我想我找到了问题,但没有找到解决方案。这也很奇怪,因为 Anaconda 运行得非常好,我记得的最后一件事是新的 Windows 更新,这让我怀疑它。
希望有人能帮忙
最佳答案
我在 https://github.com/conda/conda/issues/8510 找到了解决方案。临时文件夹中存在空格问题。解决方法是将 TEMP 和 TMP 环境变量更改为没有空格的位置,例如 c:\conda_tmp
。此修复后工作正常。
关于python - Anaconda navigator 和 activate.bat 在 Windows 中出现空格问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55996021/