Я хочу скопировать код Python / целые функции и классы с отступом в IPython. Каждый раз, когда я пытаюсь сделать отступ, я получаю следующее сообщение об ошибке:
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.
Ответы:
Вы не можете напрямую копировать в IPython. Это шаги:
%paste
в IPythonисточник
%autoindent
.Ipython 5
вы можете просто вставить код. Больше не нужно%paste
. Прочтите этот ответ .paste
.Разъяснение по шагам:
Сначала скопируйте целевые строки в буфер обмена.
Введите в командной строке iPython:
%paste
%cpaste
Вставьте (Ctrl-V) и нажмите Enter.
Затем введите
--
и нажмите Enter.Например:
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
источник
Начиная с Ipython 5 вам не нужна магическая команда, просто вставьте ее
Подробнее об этом здесь
Для обновления
ipython
до последней версииисточник
>
знаков, например:>>> a = 1 + 2
%paste
требуетTkinter
. Если вы используете ubuntu, вы можете установить его с помощьюЕсли вы используете Python3
Затем перезапустите ipython и используйте его
%paste
для вставки из буфера обмена.источник
Один из полезных ответов был потерян в комментариях, поэтому хотелось переформулировать его вместе с добавлением ссылки на другую полезную магическую функцию IPython.
Прежде всего, чтобы повторить то, что сказал @EOL, один из способов решения проблемы OP - отключить автоотступ, сначала запустив
%autoindent
и выполнив вставку (%paste
конечно, не требуется, если вы используете ).Теперь, чтобы добавить больше информации к тому, что уже здесь есть, еще один полезный режим в IPython - это
%doctest_mode
который позволяет копировать пример вставки и тестовые фрагменты из строк документа. Это также полезно для выполнения интерактивного вывода сеанса python, который вы можете найти в документации и на онлайн-форумах, без необходимости сначала вырезать строки приглашения.источник
Для пользователей Ubuntu, использующих Python 3.
Это
python-tk
для Python 2.Для
%paste
работы на Python 3 установитеpython3-tk
пакет:источник