Chcę skopiować już wcięty kod Pythona / całe funkcje i klasy do IPythona. Za każdym razem, gdy próbuję, wcięcie jest schrzanione i pojawia się następujący komunikat o błędzie:
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.
Odpowiedzi:
Nie możesz kopiować bezpośrednio do IPython. Oto kroki:
%paste
do IPythonźródło
%autoindent
.Ipython 5
możesz po prostu wkleić kod. Już nie potrzebuję%paste
. Przeczytaj tę odpowiedź .paste
.Wyjaśnienie kroków:
Najpierw skopiuj linie docelowe do schowka.
Wpisz w zachęcie iPythona:
%paste
%cpaste
Wklej (Ctrl-V) i naciśnij Enter.
Następnie wpisz
--
i naciśnij Enter.Na przykład:
In [1]: %cpaste Pasting code; enter '--' alone on the line to stop or use Ctrl-D. :for l in "Hello World": : print l, :-- H e l l o W o r l d
źródło
Od Ipythona 5 nie potrzebujesz żadnego magicznego polecenia, po prostu wklej go
Więcej na ten temat tutaj
Aby zaktualizować
ipython
do najnowszej wersjiźródło
>
>>> a = 1 + 2
%paste
wymagaTkinter
. Jeśli jesteś w systemie Ubuntu, możesz go zainstalować przezJeśli korzystasz z Python3
Następnie uruchom ponownie ipython i użyj
%paste
do wklejania ze schowka.źródło
Jedna z przydatnych odpowiedzi zaginęła w komentarzach, dlatego chciałem ją powtórzyć, dodając odniesienie do innej użytecznej magicznej funkcji IPythona.
Po pierwsze, aby powtórzyć to, co powiedział @EOL, jednym ze sposobów rozwiązania problemu OP jest wyłączenie automatycznego wcięcia przez pierwsze uruchomienie
%autoindent
i wklejenie (oczywiście niepotrzebne, jeśli używasz%paste
).Teraz, aby dodać więcej informacji do tego, co już tu jest, jeszcze jeden przydatny tryb w IPythonie to
%doctest_mode
możliwość kopiowania przykładu wklejania i testowania fragmentów z ciągów dokumentów. Jest to również przydatne do wykonywania interaktywnych danych wyjściowych sesji Pythona, które można znaleźć w dokumentacji i na forach internetowych, bez konieczności uprzedniego usuwania ciągów znaków zachęty.źródło
Dla użytkowników ubuntu korzystających z Pythona 3.
Plik
python-tk
Jest dla Pythona 2.Aby
%paste
pracować nad Pythonem 3, zainstalujpython3-tk
pakiet:źródło