-
Notifications
You must be signed in to change notification settings - Fork 146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Starting ipdb inside ipython breaks color coding (windows) #31
Starting ipdb inside ipython breaks color coding (windows) #31
Comments
Same here. Windows 7, Python 2.6.5, ipython 0.13 ipddb 0.7 The bug only happens when a second trace is activated after the first:
press 'c' for the first and then the bug happens. |
This issue is similar to what is told in the comments of #14. I currently have no access to a Windows setup. I'll look at this as soon as I get access again. |
I think this might be related, too ipython/ipython#17 "redefining stdout in imported module breaks cmdprompt on windows" |
ok, the problem is caused by ipdb/main.py:44 commenting out that line solves the problem. |
can you provide more details on which line to comment out? ipdb/main.py:44 is an "else" statement. |
OK ... I commented out line ipdb/main.py:43 which sets io.stdout and sys.stdout. Then I added a "pass" statement. This now seems to work for me on windows. |
Yes it does, sorry for the wrong line number. |
is it possible to include the fix in a release of ipdb? |
There is a comment on line 42 that states that 43 was done for nose. Does one of you uses nose and can confirm that it still works on windows when line 43 is replaced by pass ? |
Tested it on my Windows machine and it certainly fixes the issue |
@asfaltboy Sorry, to be picky, my question did not specify what to check with nose. |
I checked the issue described here (#31) by running some code and breaking into ipdb and calling ipdb again (used a simple for loop). I'm not sure if this changes when run using another package that outputs to stdout (nose/unittest/etc..), but I'm inclined to believe it's not, since it's the same code in ipdb that's run. |
@rafaelolg Thanks for the fix. I had the problem under both scenarios (a) importing ipdb in Ipython or importing a module that contained an import of ipdb and (b) from the shell when running a python script that import ipdb twice. So happy to find this fix! |
With this patch, I can run nosetests successfully and the prompt is not garbled when using IPython. I am using Python 2.7.7 Anaconda 2.0.1 (64-bit), Windows 7 with cb04b98.
|
@blink1073 I just want to make sure before closing the issue, have you tried running into ipdb continuing and in the same nose run entering ipdb again? If the colored output is not garbled in that case as well then the fix in master closes the issue. |
all good thanks On Oct 15, 2014, at 4:44 AM, Pavel Savchenko notifications@github.com wrote:
|
Did not work for me: C:\Users\silvester\workspace>nosetests ipdb_test.py
> c:\users\silvester\workspace\ipdb_test.py(6)test_something()
5 import ipdb; ipdb.set_trace()
----> 6 time.sleep(1)
7 import ipdb; ipdb.set_trace()
ipdb> c
--Return--
None
> ←[1;32mc:\users\silvester\workspace\ipdb_test.py←[0m(6)←[0;36mtest_something←[
1;34m()←[0m
←[1;32m 5 ←[1;33m ←[1;32mimport←[0m ←[0mipdb←[0m←[1;33m;←[0m ←[0mipdb←[0
m←[1;33m.←[0m←[0mset_trace←[0m←[1;33m(←[0m←[1;33m)←[0m←[1;33m←[0m←[0m
←[0m←[1;32m----> 6 ←[1;33m ←[0mtime←[0m←[1;33m.←[0m←[0msleep←[0m←[1;33m(←[0m←
[1;36m1←[0m←[1;33m)←[0m←[1;33m←[0m←[0m
←[0m←[1;32m 7 ←[1;33m ←[1;32mimport←[0m ←[0mipdb←[0m←[1;33m;←[0m ←[0mipd
b←[0m←[1;33m.←[0m←[0mset_trace←[0m←[1;33m(←[0m←[1;33m)←[0m←[1;33m←[0m←[0m
←[0m
ipdb> import ipdb
ipdb> ipdb.__path__
['c:\\users\\silvester\\workspace\\ipdb\\ipdb']
ipdb>
|
Should be fixed by 9b2f0e5 |
Confirmed, thanks @gotcha! |
Works for me too, thanks! |
Released in https://pypi.python.org/pypi/ipdb/0.8.1 |
Scenario:
import ipdb; ipdb.set_trace()
inside a method that i imported in this case django'smakemessages.py
)Edit: Just to clarify, my issue is reproducible on the first ipdb run, just by entering ipython and importing any module (sample.py) which includes the line
import ipdb;ipdb.set_trace()
The text was updated successfully, but these errors were encountered: