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爬虫爬取美剧网站的实现代码
Sep 03 Python
python3.6使用pickle序列化class的方法
Oct 22 Python
远程部署工具Fabric详解(支持Python3)
Jul 04 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
详解Python list和numpy array的存储和读取方法
Nov 06 Python
python二维键值数组生成转json的例子
Dec 06 Python
解决pytorch DataLoader num_workers出现的问题
Jan 14 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
opencv 查找连通区域 最大面积实例
Jun 04 Python
python如何编写win程序
Jun 08 Python
python数字图像处理之图像自动阈值分割示例
Jun 28 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
剧场版动画《PSYCHO-PASS 3 FIRST INSPECTOR》3月27日日本上映!
2020/03/06 日漫
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
php学习笔记 数组遍历实现代码
2011/06/09 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
js 数组操作之pop,push,unshift,splice,shift
2014/01/29 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
Angular2入门--架构总览
2017/03/29 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
2019/04/29 NodeJs
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
react MPA 多页配置详解
2019/10/18 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
Python3.2中Print函数用法实例详解
2015/05/19 Python
Python 26进制计算实现方法
2015/05/28 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
Python实现的网页截图功能【PyQt4与selenium组件】
2018/07/12 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
简单了解django orm中介模型
2019/07/30 Python
Django实现文件上传下载功能
2019/10/06 Python
keras K.function获取某层的输出操作
2020/06/29 Python
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
草莓网官网:StrawberryNET
2019/08/21 全球购物
经典促销广告词大全
2014/03/19 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
小学新教师个人总结
2015/02/05 职场文书