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中sets模块的用法实例
Sep 30 Python
详解python 拆包可迭代数据如tuple, list
Dec 29 Python
python中int与str互转方法
Jul 02 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
详解用Python练习画个美队盾牌
Mar 23 Python
python实现最大优先队列
Aug 29 Python
用Python绘制漫步图实例讲解
Feb 26 Python
Python爬虫JSON及JSONPath运行原理详解
Jun 04 Python
详解python如何引用包package
Jun 07 Python
几款好用的python工具库(小结)
Oct 20 Python
基于Python实现天天酷跑功能
Jan 06 Python
python编写扎金花小程序的实例代码
Feb 23 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中截取字符串支持utf-8
2007/01/18 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
微信公众平台开发之配置与请求
2015/08/26 PHP
PHP7匿名类用法分析
2016/09/26 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
JS+CSS3模拟溢出滚动效果
2016/08/12 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
javaScript基础详解
2017/01/19 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
Python set集合类型操作总结
2014/11/07 Python
详解python实现线程安全的单例模式
2018/03/05 Python
详解Python with/as使用说明
2018/12/13 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
Foreo国际站:Foreo International
2018/10/29 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
Java模拟试题
2014/11/10 面试题
打架检讨书500字
2014/01/29 职场文书
学生安全承诺书
2014/05/22 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
暑期社会实践心得体会
2014/09/02 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
用人单位聘用意向书
2015/05/11 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
nginx lua 操作 mysql
2022/05/15 Servers