VSCode搭建Python环境及远程调试方法

时间:2024-04-13 07:44:38

 

下载安装VSCode

到官网下载VSCode安装包,https://code.visualstudio.com/,下载并安装

VSCode搭建Python环境及远程调试方法

 

安装中文扩展,设置中文

安装完成后,VSCode默认显示为英文,需要安装插件才能显示中文。

菜单查看-扩展或者Ctrl + Shift + X,在商店中搜索“Chinese”,找到“适用于 VS Code 的中文(简体)语言包”安装。

VSCode搭建Python环境及远程调试方法

VSCode搭建Python环境及远程调试方法

 

安装之后,菜单查看-命令面板或者Ctrl + Shift + P,输入“display”,打开configure display Language ,将“locale”中的内容改为“zh-cn”,重启VSCode即可。

VSCode搭建Python环境及远程调试方法

VSCode搭建Python环境及远程调试方法

 

安装Python扩展,并设置默认Python环境

菜单查看-扩展或者Ctrl + Shift + X,在商店中搜索“Python”,找到“适Python extension for Visual Studio Code”安装,然后重启VSCode。

VSCode搭建Python环境及远程调试方法

之后,菜单查看-命令面板或者Ctrl + Shift + P,输入“python: select interpreter”,点击选择解析器,稍等几秒钟,就会列出在系统中找到的Python环境(Python环境要加入环境变量才能被找到),点击需要的python解析器即可。

VSCode搭建Python环境及远程调试方法

VSCode搭建Python环境及远程调试方法

截止现在,使用VSCode开发Python的环境已经配置完毕,接下来配置调试环境即可。

 

安装ptvsd模块

打开Python命令行,输入“import ptvsd”,如果没有报找不到模块的错误,说明当前的Python环境中已经存在ptvsd模块了,直接跳过该步骤即可。如果报错模块未找到,则需要安装。

使用pip安装ptvsd即可,输入命令“pip install ptvsd”。如果使用的是WinPython环境,打开目录下的WinPython Command Prompt.exe文件,在弹出的命令行中输入命令即可。

 

工程配置

VSCode以文件夹为单位管理工程,所以只要新建一个文件夹,将所有的Python文件都放进去就是一个工程。

之后,用VSCode打开工程文件夹,如下图,在调试界面点击添加配置,会在工程文件夹下生成.vscode/launch.json文件,并且调试下拉框会多出很多调试配置。

VSCode搭建Python环境及远程调试方法

VSCode搭建Python环境及远程调试方法

打开launch.json会发现该文件仅是若干个json配置,我们可以按照自己的情形修改。常用的调试配置有:

  • "Python: Current File (Integrated Terminal)":该配置表示在VSCode内置的命令行中直接执行当前**的Python文件。如果需要制定要执行的文件,可以修改"program": "${file}"中的${file}宏为需要的文件。
  • "Python: Current File (External Terminal)":该配置功能和上面的相同,区别是不使用VSCode内置命令行,而新打开一个命令行。
  • "Python: Attach":该配置是附件到另外一个进程的调试方式。

 

调试

普通调试方法很简单,在调试界面选择"Python: Current File (Integrated Terminal)"或者"Python: Current File (External Terminal)",点击调试按钮即可。这里我们详细说明附加进程的调试方式"Python: Attach"。

附加进程调试,要在需要调试的代码中添加以下代码:

import ptvsd
ptvsd.enable_attach(address = ('0.0.0.0', 5678))
ptvsd.wait_for_attach()

表示接受附加进程调试,其中address参数指定了远程调试的IP地址和端口号,这个参数应该和.vscode/launch.json中的配置一致。

现在,模拟一下附加进程调试。

新建一个命令行窗口,直接输入python的命令执行修改过的py文件(即在一个独立的进程中运行py文件),可以发现该脚本并不是直接执行,而是运行到ptvsd.wait_for_attach()这一行停了下来,不再继续执行,处于等待调试状态。这时可以回到VSCode,选择"Python: Attach",点击调试或按F5,即可进入调试状态,如下图:

VSCode搭建Python环境及远程调试方法

 

常见错误

由于ptvsd在Windows上默认使用GBK编码,而大多数情况下Python3都采用UTF-8编码,所以经常会出现 “UnicodeDecodeError: ‘gbk’ codec can`t decode byte …”错误。

VSCode搭建Python环境及远程调试方法

解决方法有两个,跟自己的情况二选一:

1.修改文件编码,使用gbk编码保存文件。

VSCode搭建Python环境及远程调试方法

2.修改ptvsd源码。从报错信息中可以看出,读文件出错了,可以根据提示查找ptvsd的源码,可以发现它在打开文件(open函数)时没有指定编码参数,给他加一个即可。