首页 > 编程 > Python > 正文

vscode 远程调试python的方法

2019-11-02 14:11:12
字体:
来源:转载
供稿:网友

本文介绍了vscode 远程调试python的方法,分享给大家,具有如下:

实验环境

远程服务器:京东云,1核2G,centos7.3 64bit

本地环境配置

安装vscode,实验用的版本是1.10.2 vscode配置python插件,实验用的python插件版本是0.7.0 vscode配置python远程调试环境

在.vscode文件夹新建一个launch.json文件,然后填写下面的代码

{  "version": "0.2.0",  "configurations": [    {      "name": "Attach (Remote Debug)",      "type": "python",      "request": "attach",      "localRoot": "${workspaceRoot}",      "remoteRoot": "/tmp/demo",      "port": 12345,      "secret": "my_secret",      "host": "10.12.34.23"    }  ]}

注意:/var/web换成要调试的远程项目路径,port是调试要打开的端口,host是远程服务器IP地址

服务器环境配置

首先要安装一个python库,叫做ptvsd,但是注意版本要用3.0.0,用了高一点版本就出问题。

然后在你的入口文件加上下面的代码(12345改成调试端口):

import ptvsdptvsd.settrace(None, ('0.0.0.0', 12345))

完整python代码:

# coding:UTF-8import ptvsdptvsd.settrace(None, ('0.0.0.0', 12345))from time import sleepfrom random import randomfor _ in xrange(0, 50):  sleep(5)  i = random()  print(i)

开始调试

在服务器启动工程 在vscode里面打好断点 在vscode运行调试即可

解决flask debug远程调试无法捕捉数据问题

上代码:

# coding:UTF-8  from flask import Flask  import ptvsd  import socket  try:    address = ('127.0.0.1', 11111)    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)    s.bind(address)  except socket.error:    ptvsd.settrace(None, ('0.0.0.0', 12345))  app = Flask(__name__)  @app.route('/')  def index():    a = 5 + 6    return "ok"  if __name__ == '__main__':    app.run(host='0.0.0.0', port=3000, debug=True)

原理:因为flask在debug模式下,是fork一个子进程来处理http请求,所以应该在子进程调用ptvsd.settrace(None, ('0.0.0.0', 12345))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持IIS7站长之家。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表