vscode中python乱码问题

作者:

惯例先看报错代码

[Running] set PYTHONIOENCODING=utf8 && C:\Program Files\Python39\python.exe "c:\Users\aerody\Desktop\1\s.py" 'C:\Program' �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ��� [Done] exited with code=1 in 0.041 seconds

 运行环境:win10,vscode,使用插件code runner运行后报错,首先这个不是中文乱码报错,因为源代码中没有中文也会乱码报错(虚拟机里展示):

这个问题只针对在windows下的vscode中使用coderunner插件运行官方python环境出现的乱码报错问题。

假如你是因为中文代码输出报错,解决办法也挺多的可以查看相关文章,而我就是在settings下添加如下代码(第一行注释是让coderunner调用系统终端运行,放开注释的话也会解决乱码问题,第一行和后面的代码随便注释一个,使用另一个运行代码即可,今天讲的问题是使用coderunner运行输出):

// "code-runner.runInTerminal": true, //let codernner run with terminal "code-runner.executorMap": { "python": "set PYTHONIOENCODING=utf8 && $pythonPath $fullFileName", },

下来进入正题:为什么英文代码运行也会乱码?

首先我电脑安装了anaconda和python官方的解释器,平时运行环境也是用conda下的python解释器,但是今天更新完vscode后新建程序,环境自动切换到了python官方环境下。

anaconda环境中左下角是这个模样

python官方环境长这样:

 

结果是在conda环境下coderunner可以正常运行输出结果,但是用官方的python环境就会输出错误。

开始我以为是官方的解释器是不是缺少什么而引起的代码运行错误,然后使用官方的python交互工具运行代码,结果代码正常输出

 然后我对比了输出结果:正常的输出是这样的

[Running] set PYTHONIOENCODING=utf8 && C:\ProgramData\Anaconda3\python.exe "e:\project\data_ana\test.py"

helloworld

世界你好!

 非正常输出(虚拟机演示结果):

[Running] set PYTHONIOENCODING=utf8 && C:\Program Files\Python39\python.exe "c:\Users\aerody\Desktop\1\s.py" 'C:\Program' �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���

可以看出,明明我调用的是官方自带的解释器,自带解释器路径是C:\Program Files\Python39\python.exe

但是程序竟然有自己的想法向,似乎想调用C:\Program' 里面的某个程序执行,但是又好像没发现,所以程序报错。

到这里对代码敏感的可能一下就发现问题所在,没错!就是官方python安装的路径有问题,那个Program Files 文件夹中间有个空格键,就是这个空格键造成coderunner无法识别执行路径造成的,归根结底还是windows的锅。于是卸载官方python,重新安装到一个没有空格分隔的文件夹下,这里我安装在了C:\ProgramData\Python39

 然后vscode,切换到官方python环境下,运行程序,完美解决。

 总结:这个问题只针对在windows下的vscode中使用coderunner插件运行官方python环境出现的乱码报错问题。

 欢迎讨论交流!

the end

免责声明:本文内容均来自互联网,但不代表简明教程的观点和立场.

已有 6123 次赞