ipython, показывающий бред при отладке Django с Netbeans - PullRequest
2 голосов
/ 07 октября 2010

Я использую Netbeans для кодирования Django.Когда я вставляю:

import ipdb; ipdb.set_trace()

Выполнение потока останавливается, но оно показывает бред, такой как:

[1;32m/path/to/file/models.py[0m(344)[0;36macceptBid[1;34m()[0m
[1;32m    343 [1;33m        [1;32mimport[0m [1;37mipdb[0m[1;33m;[0m [1;37mipdb[0m[1;33m.[0m[1;37mset_trace[0m[1;33m([0m[1;33m)[0m[1;33m[0m[0m
[0m[1;32m--> 344 [1;33m        [1;32mreturn[0m [1;37mself[0m[1;33m.[0m[1;37msenderId[0m[1;33m([0m[1;33m)[0m [1;33m==[0m [1;37muser_obj[0m[1;33m.[0m[1;37mid[0m[1;33m[0m[0m
[0m[1;32m    345 [1;33m[1;33m[0m[0m
[0m

Я могу использовать next, пропустить и все из pdb.Но я не вижу, где я нахожусь в коде, что заставляет меня использовать pdb вместо ipdb.

Ответы [ 4 ]

2 голосов
/ 14 июля 2014

для меня работало нормально, просто комментируя строку и добавляя пароль в ipdb/__main__.py

    from IPython.utils import io

    def update_stdout():
        # setup stdout to ensure output is available with nose

        #THIS IS THE LINE TO COMMENT #########################
        #io.stdout = sys.stdout = sys.__stdout__ 

        #REMEMBER TO ADD pass
        pass                                     
else:
    from IPython.Debugger import Pdb, BdbQuit_excepthook
    from IPython.Shell import IPShell
    from IPython import ipapi
1 голос
/ 22 сентября 2012

Это проблема: https://github.com/gotcha/ipdb/issues/31

, и вы можете решить эту проблему, закомментировав строку в ipdb / _ _ main _ _.py

1 голос
/ 07 октября 2010

Это управляющие коды ANSI , которые используются для цветов текста в выводе ipdb.По какой-то причине терминал, в котором вы отлаживаете, не принимает коды и печатает их как текст.Возможно, вам удастся найти в NetBeans параметр, позволяющий либо изменить то, о чем сообщает терминал, либо что он фактически принимает.

0 голосов
/ 08 октября 2010

То, что я сделал, чтобы иметь возможность использовать ipdb с Django Netbeans, - отключил вывод цветов в ipdb. Есть несколько способов сделать это. Если вы установили ipdb через easy_install, вы можете отредактировать код в __init__.py, оставив его следующим образом:

import sys
from IPython.Debugger import Pdb
from IPython.Shell import IPShell
from IPython import ipapi

shell = IPShell(argv=[''])

def set_trace():
    Pdb("NoColor").set_trace(sys._getframe().f_back)

Также вы можете создать себе крючок для импорта ipdb без цветов. Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...