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的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 Python
python实现的文件同步服务器实例
Jun 02 Python
在Python 3中实现类型检查器的简单方法
Jul 03 Python
详解Python发送邮件实例
Jan 10 Python
python实现redis三种cas事务操作
Dec 19 Python
Python中应该使用%还是format来格式化字符串
Sep 25 Python
10招!看骨灰级Pythoner玩转Python的方法
Apr 15 Python
Python2和3字符编码的区别知识点整理
Aug 08 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
pytorch常见的Tensor类型详解
Jan 15 Python
Django权限设置及验证方式
May 13 Python
matplotlib基础绘图命令之imshow的使用
Aug 13 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
基于mysql的论坛(5)
2006/10/09 PHP
php在线代理转向代码
2012/05/05 PHP
php命名空间学习详解
2014/02/27 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
PHP 快速排序算法详解
2014/11/10 PHP
php数组操作之键名比较与差集、交集赋值的方法
2014/11/10 PHP
PHP类型约束用法示例
2016/09/28 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
laravel-admin的多级联动方法
2019/09/30 PHP
TinyMCE 新增本地图片上传功能
2010/11/05 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
简单模拟node.js中require的加载机制
2016/10/27 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
在vue中使用回调函数,this调用无效的解决
2020/08/11 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
python编写暴力破解FTP密码小工具
2014/11/19 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
Django实现快速分页的方法实例
2017/10/22 Python
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
python实现简易内存监控
2018/06/21 Python
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
calendar在python3时间中常用函数举例详解
2020/11/18 Python
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
数据库专业英语
2012/11/30 面试题
秋天的图画教学反思
2014/05/01 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书