Ich möchte bereits eingerückten Python-Code / ganze Funktionen und Klassen in IPython kopieren. Jedes Mal, wenn ich es versuche, wird die Einrückung durcheinander gebracht und ich erhalte die folgende Fehlermeldung:
IndentationError: unindent does not match any outer indentation level (<ipython-input-23-354f8c8be51b>, line 12)
If you want to paste code into IPython, try the %paste and %cpaste magic functions.
Antworten:
Sie können nicht direkt nach IPython kopieren. Dies sind die Schritte:
%paste
IPython einquelle
%autoindent
.Ipython 5
Sie einfach den Code einfügen. Ich brauche nicht%paste
mehr. Lesen Sie diese Antwort .paste
nicht.Eine Klarstellung der Schritte:
Kopieren Sie zunächst die Zielzeilen in Ihre Zwischenablage.
Geben Sie in die iPython-Eingabeaufforderung Folgendes ein:
%paste
%cpaste
Einfügen (Strg-V) und drücken Sie die Eingabetaste.
Geben Sie dann ein
--
und drücken Sie die Eingabetaste.Beispielsweise:
quelle
Ab Ipython 5 benötigen Sie keinen magischen Befehl, fügen Sie ihn einfach ein
Mehr dazu hier
So aktualisieren Sie
ipython
auf die neueste Versionquelle
>
Zeichen wie diesem beginnt :>>> a = 1 + 2
%paste
erfordertTkinter
. Wenn Sie in Ubuntu sind, können Sie es von installierenWenn Sie auf Python3 sind
Starten Sie dann ipython neu und verwenden Sie es,
%paste
um es aus Ihrer Zwischenablage einzufügen .quelle
Eine der nützlichen Antworten ging in den Kommentaren verloren, daher wollte ich sie wiederholen und eine Referenz für eine andere nützliche IPython-Zauberfunktion hinzufügen.
Um das zu wiederholen, was @EOL gesagt hat, besteht eine Möglichkeit, das Problem von OP zu lösen, darin, die automatische Einrückung zu deaktivieren, indem Sie zuerst das Einfügen ausführen und ausführen
%autoindent
(dies wird%paste
natürlich nicht benötigt, wenn Sie es verwenden ).Um weitere Informationen zu den bereits vorhandenen Informationen hinzuzufügen
%doctest_mode
, können Sie in IPython einen weiteren nützlichen Modus kopieren, um Beispiele einzufügen und Snippets aus Dokumentzeichenfolgen zu testen. Dies ist auch nützlich, um interaktive Python-Sitzungsausgaben auszuführen, die Sie in der Dokumentation und in Online-Foren finden, ohne zuerst die Eingabeaufforderungszeichenfolgen entfernen zu müssen.quelle
Für Ubuntu-Benutzer, die Python 3 verwenden.
Das
python-tk
ist für Python 2.%paste
Installieren Sie daspython3-tk
Paket , um mit Python 3 arbeiten zu können :quelle