SyntaxError: meerdere statements gevonden tijdens het compileren van één statement

Ik zit in Python 3.3 en ik voer alleen deze 3 regels in:

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

Ik krijg deze foutmelding:

SyntaxError: multiple statements found while compiling a single statement

Wat kan ik verkeerd doen?

Bewerken: als iemand deze vraag tegenkomt, was de oplossing die ik vond om Idlex te downloaden en de IDLE-versie te gebruiken, die meerdere regels toestaat.

Screenshot: http://imgur.com/AJSrhhD


Antwoord 1, autoriteit 100%

In de shell kun je niet meer dan één instructie tegelijk uitvoeren:

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

Je moet ze één voor één uitvoeren:

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

Als je ziet dat meerdere instructies worden gedeclareerd, betekent dit dat je een script ziet dat later wordt uitgevoerd. Maar in de interactieve tolk kunt u niet meer dan één uitspraak tegelijk doen.


Antwoord 2, autoriteit 88%

Ik had hetzelfde probleem. Dit werkte voor mij op mac:

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

Antwoord 3, autoriteit 19%

Een (gedeeltelijke) praktische oplossing is om dingen in een wegwerpfunctie te plaatsen.

Plakken

x = 1
x += 1
print(x)

resulteert in

>>> x = 1
x += 1
print(x)
  File "<stdin>", line 1
    x += 1
print(x)
    ^
SyntaxError: multiple statements found while compiling a single statement
>>>

Echter, plakken

def abc():
  x = 1
  x += 1
  print(x)

werkt:

>>> def abc():
  x = 1
  x += 1
  print(x)
>>> abc()
2
>>>

Natuurlijk is dit OK voor een snelle eenmalige actie, het werkt niet voor alles wat je zou willen doen, enz. Maar ga dan naar ipython/ jupyter qtconsoleis waarschijnlijk de volgende eenvoudigste optie.


Antwoord 4, autoriteit 6%

Een oplossing voor de lange termijn is om gewoon een andere GUI te gebruiken voor het uitvoeren van Python, b.v. IDLE of M-x run-pythonin Emacs.

Other episodes