VSCode的autopep8插件无法自动格式化含中文的utf-8编码文件错误的解决方法

一、问题及原因
    配置autopep8插件并安装相关依赖后,VSCode无法自动格式化含有中文的代码文件。
    终端输出的报错信息如下:
    
    从上图可以看到文件的编码确实是UTF-8,因此排除文件编码错误的可能性。根据报错信息中提示的gbk,推测是读取或写入流时编码错误。
    定位到错误信息出现的文件位置:
    
    这里直接将第4516行改为
    wrap_output(sys.stdout, encoding='utf8').write(fixed_stdin)
    是无效的,在查阅资料后得知这段代码在从标准输入流中读取数据时采用的编码是默认的系统编码,也即gbk,强制在写入时转换为UTF-8依然会报错
     二、解决方法
    参考 ComingToy - fix gbk encode error 的提交记录将相应的修改应用到插件目录的autopep8.py文件中即可。
    
    ~\.vscode\extensions\ms-python.autopep8-2023.4.0\bundled\libs\autopep8.py
    如果不再报错但无法格式化,可以将 input_encoding 和 output_encoding 统一设置为 encoding 
    
    vscode中配置环境
    1.vscode安装python扩展以使vscode与python环境紧密相连,加自动提示等功能
    2.用户配置:全局配置
       工作区配置:一般只在当前项目生效
    3.Alt+Shift+F 按照autopep8进行格式化
    4.如果python中有大量红色波浪线警告,需要^P输入setting.json,在文件中输入"python.linting.enabled": false
    5.搭建django开发环境:
    conda activate mydjango
    django-admin startproject mysite .
    python manage.py startapp app01
    python manage.py runserver
    #launch.json为django的启动文件(运行和调试)
    6.搭建flask环境
    注意:flask的项目文件为手动创建,django为人工
    //anaconda终端和vscode终端同理
    //anaconda里新建python环境:conda create -n flask python
    //conda env list
    //conda remove -n flask --all 删除环境(注意在base下)
    新建app.py:
    from flask import Flask
    生成.vscode文件:因为直接打开文件夹得到的代码并不完整,因此需要Ctrl+shift+p
    打开工作区设置,即生成了settings.json文件配置,注意,之后在debug配置文件也是在这里生成(
    注意一下使django还是flask 
    )
    到此这篇关于VSCode的autopep8插件无法自动格式化含中文的utf-8编码文件错误的解决方法的文章就介绍到这了,更多相关VSCode autopep8无法格式化含中文的utf8文件内容请搜索电脑手机教程网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持电脑手机教程网!