以下代码使用cell magic在IPython的子进程中运行Python 2:
%%script py -2
print 'foo'
它按预期工作(即打印' foo')。
但是当我尝试在子进程中获取用户输入时,它会失败:
%%script py -2
input('foo? ')
这是输出:
foo? Traceback (most recent call last):
File "<stdin>", line 1, in <module>
EOFError: EOF when reading a line
为什么输入在子流程中不起作用的任何想法?
如果它有帮助,这里有一个屏幕抓取:
答案 0 :(得分:0)
我猜测子进程中stdin
有些奇怪(似乎已关闭),所以这可能会绕过它:
>>> %%script python
... stdin = open('/dev/tty')
... line = stdin.readline()
... print 'input:', line # python 2.7.6 is default on my sys
...
yay!
input: yay!
以上是使用Python 3.4.0(带有%doctest_mode)在IPython 1.2.1上运行时的输出。