我使用的是 Python 3.3,我只输入这 3 行:
import sklearn as sk
import numpy as np
import matplotlib.pyplot as plt
我收到此错误:
语法错误:编译单个语句时发现多个语句
我可能做错了什么?
截图:
我也有同样的问题。这对我在 Mac(和 Linux)上有用:
echo "set enable-bracketed-paste off" >> ~/.inputrc
在 shell 中,一次不能执行多个语句:
>>> x = 5
y = 6
SyntaxError: multiple statements found while compiling a single statement
你需要一一执行:
>>> x = 5
>>> y = 6
>>>
当您看到声明了多个语句时,这意味着您看到的是一个脚本,该脚本将在稍后执行。但在交互式解释器中,您一次不能执行多个语句。
(部分)实际的解决方法是将东西放入一次性函数中。
粘贴
x = 1
x += 1
print(x)
结果
>>> x = 1
x += 1
print(x)
File "<stdin>", line 1
x += 1
print(x)
^
SyntaxError: multiple statements found while compiling a single statement
>>>
但是,粘贴
def abc():
x = 1
x += 1
print(x)
作品:
>>> def abc():
x = 1
x += 1
print(x)
>>> abc()
2
>>>
当然,这对于快速一次性来说是可以的,不适用于您可能想做的所有事情等。但是,转到
ipython
/ jupyter qtconsole
可能是下一个最简单的选择。
您正在使用允许一次在线的交互式外壳。你可以做的就是在每一行之间放置一个分号,就像这样 -
import sklearn as sk;import numpy as np;import matplotlib.pyplot as plt
。
或者您可以通过 control+n 创建一个新文件,您将在其中获得正常的空闲状态。不要忘记在运行之前保存该文件。保存-control+s。然后从上面的菜单栏运行它 - run > run module。
长期解决方案是使用另一个 GUI 来运行 Python,例如Emacs 中的 IDLE 或
M-x run-python
。