vscode 远程调试python的方法


Posted in Python onDecember 01, 2017

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

实验环境

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

本地环境配置

  1. 安装vscode,实验用的版本是1.10.2
  2. vscode配置python插件,实验用的python插件版本是0.7.0
  3. 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 ptvsd
ptvsd.settrace(None, ('0.0.0.0', 12345))

完整python代码:

# coding:UTF-8

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

from time import sleep
from random import random

for _ in xrange(0, 50):
  sleep(5)
  i = random()
  print(i)

开始调试

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

vscode 远程调试python的方法

解决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))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python监控网卡流量并使用graphite绘图的示例
Apr 27 Python
python基于queue和threading实现多线程下载实例
Oct 08 Python
Python中获取对象信息的方法
Apr 27 Python
python实现对指定输入的字符串逆序输出的6种方法
Apr 26 Python
浅谈Python接口对json串的处理方法
Dec 19 Python
Python进阶之@property动态属性的实现
Apr 01 Python
python如何读取bin文件并下发串口
Jul 05 Python
PyTorch之图像和Tensor填充的实例
Aug 18 Python
利用python3 的pygame模块实现塔防游戏
Dec 30 Python
如何在django中添加日志功能
Feb 06 Python
python使用selenium爬虫知乎的方法示例
Oct 28 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 Python
Python中单、双下划线的区别总结
Dec 01 #Python
从CentOS安装完成到生成词云python的实例
Dec 01 #Python
Django的分页器实例(paginator)
Dec 01 #Python
浅谈python装饰器探究与参数的领取
Dec 01 #Python
Python简单读取json文件功能示例
Nov 30 #Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
Nov 30 #Python
Python实现的多线程同步与互斥锁功能示例
Nov 30 #Python
You might like
一个php作的文本留言本的例子(一)
2006/10/09 PHP
浅谈php自定义错误日志
2015/02/13 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
2017/02/04 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
JavaScript XML操作 封装类
2009/07/01 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
javascript闭包传参和事件的循环绑定示例探讨
2014/04/17 Javascript
sails框架的学习指南
2014/12/22 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
详解python的几种标准输出重定向方式
2016/08/15 Python
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
浅谈flask源码之请求过程
2018/07/26 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
计算机专业毕业生求职信分享
2013/12/24 职场文书
高中微机老师自我鉴定
2014/02/16 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
运动会主持词大全
2015/07/02 职场文书
学生安全责任协议书
2016/03/22 职场文书
instantclient客户端 连接oracle数据库
2022/04/26 Oracle
Redis Lua脚本实现ip限流示例
2022/07/15 Redis