解决Conda报错“C:/Program”不是命令

环境变量不能乱配

症状是什么?

执行完conda init之后,一打开Power Shell,就提示报错,内容是“C:/Program”不是命令云云,查看内容是Conda的一个Powershell脚本里的报错。

此外,mysql命令也不能正常执行,因为似乎Powershell没能正确加载环境变量。

如何找到原因?

观察报错内容,发现提示C:\Program Files (x86)\Tesseract-OCR\tessdata云云,我发现,这不是我环境变量里的东西吗?!

引起报错的是这个和Java环境变量之间的一个双引号。

如何解决?

原来是JAVA_HOME环境变量配置的时候我给加了个双引号,像这样:"C:\Program Files\Java\jdk-16.0.1"。去掉这个双引号就行了。

原理是什么?

Java用着没问题,但这个双引号导致Path排在%JAVA_HOME%\bin后面的环境变量出现了问题。不过,这个似乎还和程序有关,比如Docker,mingw和nodejs就没有受到影响,但是Conda因为要用到Powershell脚本,就受到了影响。

Windows在编辑Path的时候会自动去掉路径的双引号,但是在编辑与Path同级的其他环境变量的时候则不会这么做。

评论

此博客中的热门博文

搭建你自己的“云游戏”

标点论

SSH可以做任何事情!