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基础教程之缩进介绍
Aug 29 Python
在Django的视图中使用数据库查询的方法
Jul 16 Python
python 默认参数问题的陷阱
Feb 29 Python
Python中operator模块的操作符使用示例总结
Jun 28 Python
Python实现的栈(Stack)
Jan 26 Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 Python
python3中property使用方法详解
Apr 23 Python
Django之编辑时根据条件跳转回原页面的方法
Aug 21 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
Feb 26 Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 Python
python 三边测量定位的实现代码
Apr 22 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 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
地球防卫队:陪着奥特曼打小怪兽的人类力量 那些经典队服
2020/03/08 日漫
举例详解PHP脚本的测试方法
2015/08/05 PHP
php app支付宝回调(异步通知)详解
2018/07/25 PHP
很酷的javascript loading效果代码
2008/06/18 Javascript
模拟select的代码
2011/10/19 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
JS实现“隐藏与显示”功能(多种方法)
2016/11/24 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
学习React中ref的两个demo示例
2018/08/14 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
利用Electron简单撸一个Markdown编辑器的方法
2019/06/10 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
在Python程序中操作MySQL的基本方法
2015/07/29 Python
Python字符编码判断方法分析
2016/07/01 Python
python类的继承实例详解
2017/03/30 Python
理论讲解python多进程并发编程
2018/02/09 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
美国高街时尚品牌:OASAP
2016/07/24 全球购物
LUISAVIAROMA德国官网:时尚奢侈品牌购物网站
2020/11/12 全球购物
党员思想汇报范文
2013/12/30 职场文书
药店主任岗位责任制
2014/02/10 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
十周年庆典策划方案
2014/06/03 职场文书
建设工程授权委托书
2014/09/22 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
2015年村级财务管理制度
2015/08/04 职场文书