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",
    },

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

首先我电脑安装了anacondapython官方的解释器,平时运行环境也是用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环境出现的乱码报错问题。

 欢迎讨论交流!

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值