Spyder中的iPython控制台(当从Spyder的一个选项卡中运行时)似乎默认情况下会删除警告。此行为与独立运行的iPython控制台不同。
很容易重现。创建仅包含以下内容的文件:
import sys
print sys.argv
请注意,这是无效的Python 3,因为print没有括号。在iPython中运行(不在Spyder中),您将看到以下内容:
In [305]: run test.py test args
File "C:\Users\sdewey\Documents\intro to ML with python\test.py", line 13
print sys.argv
^
SyntaxError: Missing parentheses in call to 'print'
如果您在Spyder的iPython选项卡中运行相同的内容,您将收到空白回复:
In [9]: run test.py test args
In [10]:
请注意,如果您运行的程序没有错误,您将像往常一样在Spyder中看到结果。例如,如果您在此处修复括号,您将在控制台中看到打印的argv。只有错误输出似乎受到影响,而不是标准输出。
我通过Anaconda 4.3.1获得了Spyder的这个副本。这是Spyder 3.1.2,Python 3.6。我已经查看了Spyder的偏好,但没有看到任何可以解决失败问题的方法。
我的工作假设是,这与错误输出与标准输出有关。这是一个Windows安装,所以我不认为有不同的流,但我可能会弄错。
答案 0 :(得分:1)
( Spyder开发人员)您需要将qtconsole
软件包更新为其版本 4.3 以修复此错误。
如果您使用的是Anaconda,则需要打开终端(cmd.exe
)并运行此命令
conda update qtconsole
如果没有,则需要运行
pip install -U qtconsole