使用os.system运行命令时,Spyder在IPython控制台中未显示stderr输出

时间:2018-11-28 01:17:06

标签: ipython spyder stderr

设置:Darwin上的MacOS High Sierra,Spyder 3.3.1,Python 2.7.15 64位,Qt 5.9.4,PyQt5 5.9.2

我在Spyder的IPython控制台中运行以下代码:

In [1]: import os
In [2]: os.system("ls")
Out[2]: 0

In [3]: os.system("aasdasd") 
Out[3]: 32512

在运行spyder的bash shell中,我可以看到输出到ls命令的stdout的输出,但是看不到应该打印os.system的第二个sh: asdasd: command not found调用的stderr的输出。

spyder将stderr重定向到哪里?有没有办法查看第二种情况下生成的错误消息?

非常感谢您!

1 个答案:

答案 0 :(得分:1)

(此处为 Spyder维护程序)已在spyder-kernels 0.3.0 中进行了修复,该软件包为控制台提供了内核。固定的意思是,外部命令的stdout和stderr现在都直接显示在我们的IPython控制台中。

要更新spyder-kernels,请关闭Spyder并在系统终端(xterm或Terminal.app,在Windows上不起作用)上运行:

conda install spyder-kernels=0.*

如果您使用的是Anaconda(目前尚不可用,但是应该很快,请耐心等待),或者

pip install spyder-kernels==0.*

如果您使用自定义Python安装。