Дополнительно
Как работает волшебная %paste в IPython'е?
Я хочу скопировать в IPython уже отступленный код Python / целые функции и классы. Каждый раз, когда я пытаюсь это сделать, отступы искажаются, и я получаю следующее сообщение об ошибке:
IndentationError: unindent does not match any outer indentation level (<ipython-input-23-354f8c8be51b>, line 12)
.
Если вы хотите вставить код в IPython, попробуйте воспользоваться магическими функциями %paste и %cpaste
.
91
6
Вы не можете копировать в IPython напрямую. Вот шаги:
%paste
в IPythonРазъяснение по поводу шагов:
Сначала скопируйте целевые строки в буфер обмена.
Введите в приглашение iPython:
%paste
.%cpaste
Вставьте (Ctrl-V) и нажмите Enter.
Затем введите
--
и нажмите Enter.Например:
По состоянию на оболочкой IPython 5 вы не'т нужна никакая магия, команда, просто вставьте его
Подробнее об этом здесь
Обновления оболочкой IPython` до последней версии
Для работы
%paste
требуетсяTkinter
. Если вы используете ubuntu, вы можете установить его следующим образомЕсли вы на Python3
Затем перезапустите ipython и используйте
%paste
для вставки из буфера обмена.Для пользователей Ubuntu, которые находятся на Python 3.
В
питон-тк
для Python 2.Чтобы сделать работу %паста `на Python 3, установить питон3-ТК пакет:
Одним из полезных ответов было потеряно в комментариях, поэтому хотел повторить его вместе с добавление ссылки на другую полезную магическую функцию оболочкой IPython.
Во-первых, чтобы подтвердить, что @Эол сказал, одним из способов решения ОП'ы проблемы-отключить автоматический отступ первой команды
%автоотступа и вставкой (не требуется, если вы используете
%пасты, конечно).Теперь, чтобы добавить больше информации к тому, что уже есть здесь, еще один полезный режим в IPython-это
%doctest_mode
, который позволяет копировать вставить пример и испытание фрагментов из док строк. Это также полезно для выполнения интерактивном питон выходной сеанс, который вы можете найти в документации и в интернете на форумах, без того, чтобы сначала вырезать командные строки.