解决VS2019 Python2.7 调试时出现 UnicodeDecodeError

一、问题描述

VS2019 使用 Python2.7 环境进行调试时,控制台打印以下错误:

Traceback (most recent call last):
  File "d:\programfiles\microsoft visual studio\2019\professional\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_comm.py", line 257, in _on_run
    self.process_net_command_json(self.py_db, json_contents)
  File "d:\programfiles\microsoft visual studio\2019\professional\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_process_net_command_json.py", line 190, in process_net_command_json
    cmd = on_request(py_db, request)
  File "d:\programfiles\microsoft visual studio\2019\professional\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_process_net_command_json.py", line 622, in on_setbreakpoints_request
    py_db, filename, btype, breakpoint_id, line, condition, func_name, expression, suspend_policy, hit_condition, is_logpoint, adjust_line=True)
  File "d:\programfiles\microsoft visual studio\2019\professional\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_api.py", line 436, in add_breakpoint
    py_db.apply_files_filter(self._DummyFrame(filename), filename, False)
  File "d:\programfiles\microsoft visual studio\2019\professional\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\pydevd.py", line 1147, in apply_files_filter
    exclude_by_filter = self._exclude_by_filter(frame, filename)
  File "d:\programfiles\microsoft visual studio\2019\professional\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\pydevd.py", line 1110, in _exclude_by_filter
    if self.get_file_type(frame) == self.PYDEV_FILE:
  File "d:\programfiles\microsoft visual studio\2019\professional\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\pydevd.py", line 897, in get_file_type
    if self.dont_trace_external_files(abs_real_path_and_basename[0]):
  File "d:\programfiles\microsoft visual studio\2019\professional\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_api.py", line 807, in custom_dont_trace_external_files
    return abs_path.startswith(start_patterns) or abs_path.endswith(end_patterns)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcf in position 3: ordinal not in range(128)

二、解决方案

1. 修改 pydevd_api.py

根据错误提示中的路径打开 pydevd_api.py 文件修改如下:

import sys

py_ver = sys.version
if py_ver.split('|')[0].split('.')[0] == '2':
    reload(sys)
    sys.setdefaultencoding('gbk')

2. 添加文件 sitecustomize.py

找到Pytho2.7环境安装目录,进入<RootDir>\Lib\site-packages 目录,新建文件 sitecustomize.py,内容如下

import sys
sys.setdefaultencoding('gbk')

 

参考:

https://blog.csdn.net/yscoder/article/details/91900663

https://blog.csdn.net/l1028386804/article/details/78976807

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值