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+matplotlib绘制饼图散点图实例代码
Jan 20 Python
python如何为创建大量实例节省内存
Mar 20 Python
详解python3中zipfile模块用法
Jun 18 Python
python寻找list中最大值、最小值并返回其所在位置的方法
Jun 27 Python
Python基本socket通信控制操作示例
Jan 30 Python
python pandas写入excel文件的方法示例
Jun 25 Python
python+opencv像素的加减和加权操作的实现
Jul 14 Python
python3.6+django2.0+mysql搭建网站过程详解
Jul 24 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
Oct 17 Python
python numpy实现rolling滚动案例
Jun 08 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
Feb 22 Python
Python insert() / append() 用法 Leetcode实战演示
Mar 31 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
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
js版本A*寻路算法
2006/12/22 Javascript
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
一起来写段JS drag拖动代码
2010/12/09 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
JS网页图片按比例自适应缩放实现方法
2014/01/15 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
python+Django+apache的配置方法详解
2016/06/01 Python
浅析Python中else语句块的使用技巧
2016/06/16 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
python__name__原理及用法详解
2019/11/02 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
学校万圣节活动方案
2014/02/13 职场文书
租房协议书怎么写
2014/04/10 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
小学生通知书评语
2014/12/31 职场文书
开工典礼致辞
2015/07/29 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书