赞
踩
由于安装anaconda3时在是否把anaconda3加入path那里
是不建议的,因此很多安装时会不勾选这一选项。
然后使用vscode调用cmd运行Python的编辑器调试Python时,终端经常会出现诸如
e:\Python>D:/Anaconda3/Scripts/activate
系统找不到指定的路径。
系统找不到指定的文件。
e:\Python>conda activate base
'conda' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
而正常情况下,执行完脚本应该出现的cmd提示符应该类似于
(base) e:\Python>
出现这个问题可能导致某些包在import时失败(因为环境没有启动,找不到对应的包)。
这个问题是由于windows用户名为中文时发生。
cmd一般默认是基于ANSI系编码的(包括中文用户最常用的936GBK)而vscode的终端仅支持来自cmd的UTF-8编码数据。因此,在启动conda环境时,在最后一步执行的Anaconda3\condabin\_conda_active.bat
中的这一行
@"%CONDA_EXE%" %_CE_M% %_CE_CONDA% shell.cmd.exe %* 1>%UNIQUE%
里,输出重定向至文件%UNIQUE%
时会采用utf-8编码,但后面读取该文件时却又是用cmd的GBK编码来读取,这就会造成错误。
在这一行前添加chcp 65001
可以使vscode不再报错,但是会使anaconda提供的Python Prompt(base environment)出现同样的问题(因为cmd的读写都是GBK,在添加了chcp 65001
之后会变成读utf-8,写GBK的情况,出现另一种乱码)。
如果想一劳永逸地解决此问题,需要为Python Prompt(base environment)单独创建一个脚本。
Anaconda3\Scripts\activate.bat
,在第一行前新建一行,写入chcp 65001
,保存;cmdactivate.bat
);chcp 65001
,保存;完成。
自VS code 更新1.43.1版本后,此现象已经(至少在我的电脑上)被修复,也就是说如果仍然chcp
至代码页65001反而会产生错误。
建议将之前的改动(即chcp 65001
)删去或改为936,应该可以正常工作。
如果提示符前出现环境(如(base)
),说明已经正常工作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。