Совсем недавно у меня внезапно возникли проблемы с приглашением Anaconda и запуском экземпляров jupyter с VS Code. Существует ошибка «Отказано в доступе», но даже как администратор я получаю сообщение об ошибке, указывающее на проблему с пробелами на моем пути. У меня никогда не было этой проблемы, и анаконда работала уже более года.
Итак, я удалил 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 и запускаю activ.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, и там activ.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, что заставило меня заподозрить это.
Надеюсь, кто-то может помочь