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中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
Python字典操作简明总结
Apr 13 Python
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
django允许外部访问的实例讲解
May 14 Python
Python list与NumPy array 区分详解
Nov 06 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 Python
Python基于gevent实现高并发代码实例
May 15 Python
python 解决Fatal error in launcher:错误问题
May 21 Python
Django中的模型类设计及展示示例详解
May 29 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 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
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
Laravel日志用法详解
2016/10/09 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
2017/07/10 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
PHP 实现链式操作
2021/03/09 PHP
JS模拟自动点击的简单实例
2013/08/08 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
switchery按钮的使用方法
2017/12/18 Javascript
js使用cookie实现记住用户名功能示例
2019/06/13 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
Python列表list数组array用法实例解析
2014/10/28 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
python opencv读mp4视频的实例
2018/12/07 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
Python实现将元组中的元素作为参数传入函数的操作
2020/06/05 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
python中的列表和元组区别分析
2020/12/30 Python
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
怎样自定义一个异常类
2016/09/27 面试题
高中的职业生涯规划书
2013/12/28 职场文书
应用外语系自荐信
2014/06/26 职场文书
新郎接新娘保证书
2015/05/08 职场文书
常住证明范本
2015/06/23 职场文书
js基础语法与maven项目配置教程案例
2021/07/15 Javascript
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js