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实现批量下载图片的方法
Jul 08 Python
Python使用smtp和pop简单收发邮件完整实例
Jan 09 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
May 30 Python
解决tensorflow模型参数保存和加载的问题
Jul 26 Python
Python修改文件往指定行插入内容的实例
Jan 30 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
Jun 28 Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
python数据化运营的重要意义
Nov 25 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
运行python提示no module named sklearn的解决方法
Nov 29 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与SQL注入攻击[三]
2007/04/17 PHP
PHP 采集程序 常用函数
2008/12/18 PHP
php数组键名技巧小结
2015/02/17 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
2020/05/02 PHP
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
JS文本框默认值处理详解
2013/07/10 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
Puppet的一些技巧
2018/09/17 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
Python新手入门最容易犯的错误总结
2017/04/24 Python
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
Python画图实现同一结点多个柱状图的示例
2019/07/07 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
Marlies Dekkers内衣法国官方网上商店:国际知名的荷兰内衣品牌
2019/03/18 全球购物
个人职业生涯规划书1500字
2013/12/31 职场文书
大学生关于奋斗的演讲稿
2014/01/09 职场文书
售后服务承诺书怎么写
2014/05/21 职场文书
锦旗标语大全
2014/06/23 职场文书
竞选纪律委员演讲稿
2014/09/13 职场文书
先进班组材料范文
2014/12/25 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
幼儿园教师安全责任书
2015/05/08 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
python爬虫selenium模块详解
2021/03/30 Python