2010-07-24 29 views
47

Mi caso de uso es que quiero inicializar algunas funciones en un archivo y luego iniciar ipython con esas funciones definidas. ¿Hay alguna manera de hacer algo como ipython --run_script = myscript.py?Inicie ipython ejecutando un script

+0

¿por qué no formula su pregunta como una pregunta? –

Respuesta

26

por the docs, es trivial:

Se empieza IPython con el comando:

$ ipython [options] files 

Si invoca sin opciones, ejecuta todos los archivos que aparecen en secuencia y lo deja en el intérprete mientras todavía reconoce cualquier opción que pueda establecido en su archivo ipythonrc. Este comportamiento es diferente de Python estándar, que cuando se llama como python -i solo ejecutará e ignorará su configuración de configuración .

Por lo tanto, sólo tiene que utilizar ipython myfile.py ... y ya está! -)

+0

Esta respuesta no está actualizada. Vea la respuesta de @Maarten a continuación. Debe usar un indicador '-i', junto con cualquier otra opción que desee, seguido del nombre del script de python. De esta forma, se quedará en el intérprete en lugar de volver a salir inmediatamente. – CPBL

70

En versiones recientes de ipython sí es necesario añadir la opción -i para entrar en el entorno interactivo después. Sin el -i, solo ejecuta el código en myfile.py y vuelve al prompt.

$ ipython -i myfile.py 
+5

Como nota adicional, "versiones recientes" aquí significa después de la renovación arquitectónica 0.10.2 ~> 0.11, y la opción "-i" es compatible con versiones anteriores ipython 0.10.2 (puedo confirmar) y probablemente menor (puedo especular). – DreadPirateShawn

13

Hoy en día, se puede utilizar la carpeta de inicio de ipython, que se encuentra en su directorio (C: \ Usuarios \ [nombre de usuario] \ IPython en Windows.). Vaya al perfil predeterminado y verá una carpeta de inicio con un archivo README. Simplemente coloque los scripts de Python allí o, si desea los comandos de ipython, colóquelos en un archivo con extensión .ipy.

+0

Gracias, es bueno saber sobre el directorio de inicio. Recientemente encontré acerca de exec_files en las opciones del archivo de configuración. Parece que los archivos dir de inicio se ejecutan antes de las entradas de exec_files. El enlace es informativo. –

+1

'~/.config/ipython/profile_default/startup' en ubuntu – wim

0

Pareces estar buscando el comando ipyhton's% run magic.

Al escribir ipython:

%run hello_world.py 

se encontrará con el programa hello.py guardado en su directorio personal. Las funciones y variables definidas en ese script también serán accesibles para usted.

+1

La pregunta es cómo iniciar ipython con un archivo, no ejecutar un archivo dentro de ipython. –

9

Puede usar los perfiles de ipython para definir los scripts de inicio que se ejecutarán cada vez que inicie ipython. Se proporciona una descripción completa de los perfiles, here. Puede crear múltiples perfiles con diferentes archivos de inicio.

Suponiendo que solo necesita un perfil, y siempre quiere los mismos archivos de inicio cada vez que inicia ipython, simplemente puede modificar el perfil predeterminado. Para ello, primero averiguar dónde está su directorio de configuración ipython está en una sesión de ipython .:

In [1]: import IPython 
In [2]: IPython.paths.get_ipython_dir() # As of IPython v4.0 
In [3]: print(ipython_config_dir) 
/home/johndoe/.config/ipython 

Para este ejemplo, estoy usando Ubuntu Linux, y el directorio de configuración se encuentra en /home/johndoe/.config/ipython, donde johndoe es el nombre de usuario.

El DEFAULT_PROFILE se encuentra en el subdirectorio profile_default. Ponga cualquier script de inicio en profile_default/startup. En el ejemplo aquí, la ruta completa sería /home/johndoe/.config/ipython/profile_default/startup.

+0

en versiones recientes de IPython, el get_ipython_dir() ahora está en IPython.paths.get_ipython_dir() – lehalle

+0

¡Gracias! Esta es una publicación anterior ... La corrigí. – Caleb

0

Actualice la respuesta de @ Caleb para Python 3.5 en Ubuntu 14.04: Hice esta respuesta autocontenida al copiar partes relevantes de la respuesta de @ Caleb.

Puede usar los perfiles de ipython para definir scripts de inicio que se ejecutarán cada vez que inicie ipython. Se proporciona una descripción completa de los perfiles, here. Puede crear múltiples perfiles con diferentes archivos de inicio.

Suponiendo que solo necesita un perfil, y siempre quiere los mismos archivos de inicio cada vez que inicia ipython, simplemente puede modificar el perfil predeterminado. Para ello, primero averiguar dónde está su directorio de configuración ipython está en una sesión de ipython .:

de entrada:

import IPython 
ipython_config_dir = IPython.paths.get_ipython_dir() 
print(ipython_cofig_dir) 

Salida:

/home/johndoe/.ipython 

Para este ejemplo johndoe es el nombre de usuario.

Dentro de la carpeta /.ipython, default_profile está en el subdirectorio profile_default. Ponga todos los scripts de inicio en profile_default/startup. En este ejemplo, la ruta completa sería

/home/johndoe/.ipython/profile_default/startup 
+1

Como es esta respuesta, no responde la pregunta. Una respuesta tiene que estar completamente contenida en sí misma. Sugiero completarlo. –

+0

¿Debo simplemente editar la respuesta de @Calebs? con esta actualización! o hacerlo autocontenido? ¡Gracias! ¡Lo han editado! –

+1

No creo que deba modificar la respuesta de Calebs porque la cambia considerablemente. Agregaría la información relevante para que tu respuesta responda la pregunta por sí misma.Póngase en la posición de alguien que lea su respuesta sin leer la de Caleb, y vea qué información se necesita para que esa persona siga su respuesta de principio a fin. :) –

0

El siguiente es el caso cuando se desea que los scripts de arranque que se ejecute automáticamente cada vez que utilice ipython (en lugar de tener un script que debe especificar cada vez que se ejecutar ipython).

Para las versiones recientes (es decir, 5.1.0) de ipython, coloque uno o más scripts de Python que desee haber ejecutado en la carpeta IPYTHON_CONFIG_DIR/profile_PROFILENAME/startup.

En Linux, por ejemplo, puede poner su código de inicio de Python en un archivo llamado ~/.ipython/profile_default/startup/10-mystartupstuff.py si desea que se ejecute cuando no se especifique ningún perfil de ipython.

La información sobre cómo crear y usar perfiles de ipython está disponible here.

Cuestiones relacionadas