[IPython-dev] A couple of odd behaviours...

Carl Smith carl.input at gmail.com
Thu Nov 8 11:03:16 EST 2012


I don't have anything in config or startup files at all. I was using
nbcloud for ages, and reformatted this machine not so long back, so my
local Notebook installation is brand new. I'm still using the default
config IPython created for me, and have nothing in startup.

I'm not sure how to check ip.system is ip.system_piped, but tried the
following with the same result.

ip = get_ipython()
ip.system = ip.system_piped
!adb shell ls

I've noticed that it doesn't always print everything to the terminal.
It seems to do it sometimes and not others, so I need to figure out
what's causing the change and maybe work it out from there.

If I do `ip.system = ip.system_raw`, then it always goes to the
terminal, so that works. If I do `ip.system = ip.system_piped` it goes
bank to printing blank lines, with nothing in the terminal. Because
the printing to the terminal thing is happening on and off, well, I've
only seen it happen once, I need to find out why. It can't literally
be random.

I did just try creating a new directory on my main machine, then
launching the Notebook from that empty directory, then just running
`!adb shell ls` in a new notebook. Same problem. I also tried running
the three lines above to explicitly demand that my output gets piped,
but to no avail.

I tried using os.system, which sends stdout to the terminal, and
ip.system, which prints blank lines.

P.S. Why does ip.system return None? Shouldn't it return an int?

On 8 November 2012 14:23, Thomas Kluyver <takowl at gmail.com> wrote:
> On 8 November 2012 02:42, Carl Smith <carl.input at gmail.com> wrote:
>>
>> I tried `pwd` and so on, and get the same behaviour. Everything
>> printed by `!abd shell <cmd>` ends up in the terminal, not in the
>> Notebook, though I still get a newline in the Notebook for each line
>> that should be there.
>>
>> Any thoughts?
>
>
> You don't have anything in config or startup files that could be setting
> ip.system to ip.system_raw? Can you check that ip.system is ip.system_piped,
> just before an offending command?
>
> We fail to redirect C-level stdout from within the kernel process (issue
> #1230), but the subprocess when you run a system command should be run in a
> new pseudoterminal controlled by IPython, so I'm mystified why the output is
> going to the wrong place.
>
> Thomas
>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
>



More information about the IPython-dev mailing list