Python调试终端

作者: fasionchan | 来源:发表于2016-12-09 18:52 被阅读244次

后端服务程序开发运营过程中,难免会遇到一些BUG疑难杂症,是日志输出等调试手段无法定位的。
如有有一个工具,可以连上服务程序,查询服务中间状态或者修改程序变量,势必加速问题定位及解决。

本模块就是您想要的工具~

安装

模块代码已经在github上开源:libase.server.console,可以直接把代码clone下来安装。

$ git clone https://github.com/fasionchan/libase.git
$ cd libase
$ python setup.py install

当然了,libase也已经发布到PyPI上了。因此,更方便的安装方式是使用pip

pip install libase

服务接入

需要远程调试的程序可以用start_console_server快捷启动一个远程调试终端服务。
然后,使用pyconsole命令便可以连上该程序,并初始化一个Python控制台用于调试了。

import time

from libase.server.console import start_console_server

counter = 0

start_console_server()

while True:
    print counter
    counter += 1
    time.sleep(1)

例子是一个计算程序,使用start_console_server接入远程调试终端服务,端口为默认值4444

连接调试

libase提供一个用于连接远程调试终端的程序pyconsole,以访问上述程序为例:

$ pyconsole 4444
Python 2.7.3 (default, Jan  2 2013, 13:56:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(ConsoleProxy)
>>> print main.counter
93
>>> main.counter = 0
>>> print main.counter
1
>>> print main.counter
2

注意到,默认已经将进程的__main__模块引入到当前名字空间,名为main,其效果等同于在pyconsole中执行import __main__ as main

高级用法

接口文档

start_console_server

start_console_server(port=4444, addr='localhost', 'code'='')

接入远程调试终端服务,返回一个ConsoleServer对象。

  • port 远程调试终端服务监听的端口,默认为4444
  • addr 远程调试终端服务监听的地址,可以为IP或者机器名,默认为localhost
  • code 初始化代码,可用于预先引入一些对象到终端所在名字空间

run_console_proxy

run_console_proxy(port=4444, addr='localhost')

以给定地址端口信息,连上接入远程调试终端的服务,并启动一个Python控制台。

  • port 远程调试终端所在端口,默认为4444
  • addr 远程调试中断所在机器地址,可以是IP或者机器名,默认为localhost

工具命令

pyconsole

用法:pyconsole [port] [addr]

  • port 远程调试终端所在端口,默认为4444
  • addr 远程调试中断所在机器地址,可以是IP或者机器名,默认为localhost

该命令,只是把run_console_proxy命令化,实现如下:

import sys
import rlcompleter

from libase.server.console import run_console_proxy

if __name__ == '__main__':
    run_console_proxy(*sys.argv[1:])

相关文章

  • Python调试终端

    后端服务程序开发运营过程中,难免会遇到一些BUG疑难杂症,是日志输出等调试手段无法定位的。如有有一个工具,可以连上...

  • Visual studio code的python环境配置

    特点 可以debug调试python 内置终端,用着很爽 兼并ST和Atom的优点,快而美观. 安装 https:...

  • 终端LLDB调试python脚本错误

    出现问题 原因 使用了brew安装的python2.7.15_1可能不含_remove_dead_weakref模...

  • 参考资料:Python 的调试

    Python 代码调试技巧 我常用的 Python 调试工具 详细演示进入函数的 pdb s 调试 Python ...

  • mac查看python的安装路径-网络摘抄

    1、终端: whichpython/python3 2、终端: python/python3 --->import...

  • 第一次运行 TensorFlow

    $ python //打开python终端>>> imp...

  • python调试

    linux python调试技巧 Linux下Python基础调试 http://blog.163.com/liu...

  • Android终端调试

    下面对我调试过程中的一些经验做一番记录 目前我用到终端调试方法通过USB连接、ADB网络连接、串口连接三种 USB...

  • HBuilder Android真机调试

    关于调试 难者不会,会者不难。对于调试,这句话尤其合适。无论是前端调试、Java调试、PHP调试、Python调试...

  • learning

    python在终端进行文件的运行在终端输入 python test.py 时间时间的转换 编码python编码问题

网友评论

本文标题:Python调试终端

本文链接:https://www.haomeiwen.com/subject/laqymttx.html