语法错误:编译单个语句时发现多个语句

问题描述 投票:0回答:7

我使用的是 Python 3.3,我只输入这 3 行:

import sklearn as sk
import numpy as np
import matplotlib.pyplot as plt

我收到此错误:

语法错误:编译单个语句时发现多个语句

我可能做错了什么?

截图:

python syntax-error python-idle python-3.3
7个回答
60
投票

我也有同样的问题。这对我在 Mac(和 Linux)上有用:

echo "set enable-bracketed-paste off" >> ~/.inputrc

22
投票

在 shell 中,一次不能执行多个语句:

>>> x = 5
y = 6
SyntaxError: multiple statements found while compiling a single statement

你需要一一执行:

>>> x = 5
>>> y = 6
>>>

当您看到声明了多个语句时,这意味着您看到的是一个脚本,该脚本将在稍后执行。但在交互式解释器中,您一次不能执行多个语句。


7
投票

(部分)实际的解决方法是将东西放入一次性函数中。

粘贴

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
可能是下一个最简单的选择。


2
投票

您正在使用允许一次在线的交互式外壳。你可以做的就是在每一行之间放置一个分号,就像这样 -

import sklearn as sk;import numpy as np;import matplotlib.pyplot as plt
。 或者您可以通过 control+n 创建一个新文件,您将在其中获得正常的空闲状态。不要忘记在运行之前保存该文件。保存-control+s。然后从上面的菜单栏运行它 - run > run module。


1
投票

长期解决方案是使用另一个 GUI 来运行 Python,例如Emacs 中的 IDLE 或

M-x run-python


1
投票

我找到的解决方案是下载Idlex并使用它的IDLE版本,它允许多行。


这最初是添加到问题的修订版 4中的。


0
投票

我在 Windows 上通过 wsl 执行 python 代码。 对我有用的是切换到 Jupyter Notebook。很容易得到

pip install jupyter
;然后使用
jupyter notebook
进行部署。 它允许将多行粘贴到每个“单元格”中以及更多功能:

© www.soinside.com 2019 - 2024. All rights reserved.