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中文分词实现方法(安装pymmseg)
Jun 14 Python
python itchat实现微信自动回复的示例代码
Aug 14 Python
Python标准库inspect的具体使用方法
Dec 06 Python
Python中的默认参数实例分析
Jan 29 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
python pandas 如何替换某列的一个值
Jun 09 Python
Python如何实现转换URL详解
Jul 02 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
使用Keras建立模型并训练等一系列操作方式
Jul 02 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
scrapy redis配置文件setting参数详解
Nov 18 Python
Python ellipsis 的用法详解
Nov 20 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
用函数读出数据表内容放入二维数组
2006/10/09 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
php获取访问者IP地址汇总
2015/04/24 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
JQuery AJAX实现目录浏览与编辑的代码
2008/10/21 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
vue引入jq插件的实例讲解
2017/09/12 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
如何在Python中编写并发程序
2016/02/27 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
迟到检讨书5000字
2014/01/31 职场文书
旅游与酒店管理专业求职信
2014/07/21 职场文书
文明社区申报材料
2014/08/21 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
2014年双拥工作总结
2014/11/21 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python