Actualizar el espacio de nombres de Ipython al ejecutar script desde la línea de comandos

StackOverflow https://stackoverflow.com/questions/19842776

Pregunta

En Ipython 0.10, fue posible ejecutar un script desde la línea de comandos, luego desde el modo interactivo, obtener acceso inmediatamente a los nombres en el espacio de nombres:

ipython -i some_script.py

%whos
    tom
    dick
    jane

Ahora estoy usando Python 3.3.2 y Ipython 1.1.0. En algún lugar a lo largo de la línea, este comportamiento cambió. Ahora obtengo:

ipython3 -i some_script.py

%whos
    Interactive namespace empty

Ahora debo iniciar iPython, luego %ejecutar el script para que se conserve el espacio de nombres:

ipython3 -i
%run some_script.py
%whos
    tom
    dick
    jane

¿Existe una opción o técnica de línea de comandos que me dé el viejo comportamiento? He intentado

ipython3 -i -c "%run some_script.py"

Pero eso tampoco funciona.

Lo sé, es algo perezoso, pero tener un paso menos acelera los giros de depuración.

¿Fue útil?

Solución

Repostando como respuesta: los nombres en realidad se colocan en su espacio de nombres interactivo, pero los nombres definidos cuando se inicia iPython se oculta de %whos, entonces dice que el espacio de nombres está vacío, aunque no lo está. Si intenta usar los nombres, deberían funcionar normalmente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top