首页 > 解决方案 > 重定向 django runserver 输出以便使用 pudb 进行调试

问题描述

我目前正在尝试使用pudbdjango 应用程序进行故障排除。为了做到这一点,我正在运行runserver而不是gunicorn.

然后,当我想调试时,我添加了:

import pudb; pu.db

pudb gui 显示正确,但很快就被 runserver 输出弄乱了。

根据pudb文档PUDB_TTY,我可以通过在启动服务器之前设置变量来避免这种情况。

$ tty
/dev/pts/3
$ PUDB_TTY=/dev/pts/3 manage.py ... runserver ...

不幸的是,GUI 仍然会被服务器的输出弄乱。

或者,我尝试重定向来自 runserver ( >/dev/null 2>&1) 的所有输出,但pudb输出也被捕获(显然)。

有没有办法:

标签: djangottypudb

解决方案


看起来 TTY 重定向功能仅在 Development 分支中可用

我能够让它工作:

$> git clone https://github.com/inducer/pudb
$> cd pudb
$> python setup.py install

在 1 号航站楼:

$> tty 
   # Outputs: /dev/pts/5
$> perl -MPOSIX -e pause

在 2 号航站楼:

$> PUDB_TTY=/dev/pts5 python manage.py runserver

推荐阅读