Anaconda/conda环境配置的问题
0 前言
安装Anaconda的时候,由于某种原因(我不清楚),官方推荐是手动添加环境变量的。
不管怎么样,反正我安装完成之后,使用conda --version
的时候报错了,报错如下:
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<
Traceback (most recent call last):
File "D:\Application\anaconda3\Lib\site-packages\conda\exception_handler.py", line 17, in __call__
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "D:\Application\anaconda3\Lib\site-packages\conda\cli\main.py", line 54, in main_subshell
parser = generate_parser(add_help=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Application\anaconda3\Lib\site-packages\conda\cli\conda_argparse.py", line 127, in generate_parser
configure_parser_plugins(sub_parsers)
File "D:\Application\anaconda3\Lib\site-packages\conda\cli\conda_argparse.py", line 354, in configure_parser_plugins
else set(find_commands()).difference(plugin_subcommands)
^^^^^^^^^^^^^^^
File "D:\Application\anaconda3\Lib\site-packages\conda\cli\find_commands.py", line 71, in find_commands
for entry in os.scandir(dir_path):
^^^^^^^^^^^^^^^^^^^^
OSError: [WinError 123] 文件名、目录名或卷标语法不正确。: '"C:\\Windows'
解决办法
报错原因很明显,路径语法不正确,很多人看到一大段报错就不想看了,但是你仔细看最后一行(python解释器提示是这样的),'"C:\\Windows'
这显然不符合正常编程路径格式,因为引号没有匹配上。而且这个问题大概率出现在系统环境变量上
我在计算机属性里检查了系统环境变量(也就是一般windows添加环境变量用的可视化方法),但是没有发现任何问题。
之后我就用cmd
的方法查看了。
- 打开CMD,输入
echo %PATH%
我的环境路径就出现了一大堆,如下:
C:\Users\Wenli>echo %PATH%
C:\Program Files\Alacritty\;D:\Application\Microsoft MPI\Bin\;D:\Application\Java\JDK-13.0.2\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Common Files\Oracle\Java\javapath;"C:\Windows;system32";C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:\mingw64\bin;D:\Cmake\cmake-3.22.0-windows-x86_64\bin;D:\nodejs\;C:\Program Files\Azure Data Studio\bin;C:\Windows\System32;D:\Git\cmd
我就发现了有一行"C:\Windows;system32";
跟其他的写法不一样,这里的分号是有问题的。可以将其拆成两个完整的路径添加上,我是直接删了这行,因为我发现已经有了。
建议你把上面的报错和这个PATH完整路径交给GPT来看,他们找的快
- 验证
配置好环境变量之后,重新开一个cmd,然后conda -V
验证,没问题
2 补充
这个问题的出现就说路径不对,你把错误路径改了就行。
我电脑之前是装过anaconda的,并没有问题,我更新了就有问题了,所以可能是个bug。
我看到另一个博主说可能因为是什么32位不兼容问题,大概率不是这个原因。