Quiero copiar el código Python / funciones y clases completas ya sangradas en IPython. Cada vez que intento, la sangría se estropea y aparece el siguiente mensaje de error:
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.
Respuestas:
No puede copiar a IPython directamente. Estos son los pasos:
%paste
en IPythonfuente
%autoindent
.Ipython 5
puede simplemente pegar el código. No necesito%paste
más. Lea esta respuesta .paste
.Una aclaración sobre los pasos:
Primero, copie las líneas de destino en su portapapeles.
Escriba en el indicador de iPython:
%paste
%cpaste
Pega (Ctrl-V) y presiona Enter.
Luego escribe
--
y presiona enter.Por ejemplo:
fuente
A partir de Ipython 5 no necesitas ningún comando mágico, solo pégalo
Más sobre esto aquí
Para actualizar
ipython
a la última versiónfuente
>
signos como este:>>> a = 1 + 2
%paste
requiereTkinter
. Si está en ubuntu, puede instalarloSi estás en Python3
Luego reinicie ipython y use
%paste
para pegar desde su portapapeles.fuente
Una de las respuestas útiles se perdió en los comentarios, así que quería reformularla junto con agregar una referencia para otra función mágica útil de IPython.
Primero, para reafirmar lo que dijo @EOL, una forma de resolver el problema de OP es desactivar la sangría automática ejecutando primero
%autoindent
y pegando (no es necesario si lo está usando%paste
, por supuesto).Ahora, para agregar más información a lo que ya está allí, un modo más útil en IPython es
%doctest_mode
que le permite copiar, pegar, ejemplos y probar fragmentos de cadenas de documentos. Esto también es útil para ejecutar la salida de sesión interactiva de Python que puede encontrar en la documentación y en los foros en línea, sin tener que eliminar primero las cadenas de mensajes.fuente
Para usuarios de ubuntu que están en Python 3.
El
python-tk
es para Python 2.Para que
%paste
funcione en Python 3, instale elpython3-tk
paquete:fuente