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写xml文件的操作实例
Oct 05 Python
在Python程序中实现分布式进程的教程
Apr 28 Python
使用Python对IP进行转换的一些操作技巧小结
Nov 09 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
Jan 09 Python
Python实现模拟浏览器请求及会话保持操作示例
Jul 30 Python
python 保存float类型的小数的位数方法
Oct 17 Python
PyQT5 QTableView显示绑定数据的实例详解
Jun 25 Python
Python用字典构建多级菜单功能
Jul 11 Python
利用python在excel中画图的实现方法
Mar 17 Python
Keras 快速解决OOM超内存的问题
Jun 11 Python
Python爬虫与反爬虫大战
Jul 30 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
Jan 07 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 国漫
dedecms模板标签代码官方参考
2007/03/17 PHP
php 获取一个月第一天与最后一天的代码
2010/05/16 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
纯js实现瀑布流布局及ajax动态新增数据
2016/04/07 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
JS实现打砖块游戏
2020/02/14 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
浅谈Python NLP入门教程
2017/12/25 Python
Python KMeans聚类问题分析
2018/02/23 Python
Python装饰器原理与简单用法实例分析
2018/04/29 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
在校学生职业规划范文
2014/01/08 职场文书
有关打架的检讨书
2014/01/25 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
市场营销策划方案
2014/06/11 职场文书
教育读书笔记
2015/07/02 职场文书
《去年的树》教学反思
2016/02/18 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js