Inicializar intérprete con variables.

¿Cómo inicializo el intérprete de python de modo que ya tenga variables en su memoria? Por ejemplo, ¿cómo podría inicializar un [ni] intérprete de Python y escribirlo como mi primera entrada?

In [1]: today Out[1]: '2015-05-05 17:49:32.726496' 

sin primero enlazar el nombre str(today = datetime.datetime.today()) ?

Si está utilizando ipython, puede configurarlo para que cargue los scripts automáticamente.

correr

 $ ipython profile create 

lo que creará el perfil por defecto en su directorio de inicio.

Cree un archivo llamado ~/.ipython/ipython_init.py y agregue

 import datetime today = datetime.datetime.today 

Ahora al final de ~/.ipython/profile_default/ipython_config.py , agregue esta línea para que cargue ese archivo cada vez que se inicie el intérprete

 c.InteractiveShellApp.exec_files = ['~/.ipython/ipython_init.py'] 

La próxima vez que inicie el shell de ipython, podrá acceder a esas variables.

 In [1]: today Out[1]: datetime.datetime(2017, 3, 2, 13, 31, 26, 776744) 

Puede crear un script que contenga su código de “configuración” y luego ejecutarlo e ingresar al modo interactivo.

Por ejemplo:

 # foo.py import datetime today = datetime.datetime.today 

Corre con:

 python -i foo.py >>> today '2015-05-05 17:49:32.726496' 

Creo que IPython debería soportar la misma opción. La otra alternativa específicamente para IPython es simplemente iniciarlo, luego decir:

 In [1]: %run foo.py 

Que ejecutará esa secuencia de comandos en su shell actual, dándole acceso a todo lo definido allí.

Además de la otra respuesta, puede pasar explícitamente al modo interactivo de esta manera:

 // setup.py import code, datetime today = datetime.datetime.today() code.interact(local=locals()) 

ejecutar normalmente

 python setup.py 

Hay tres opciones para el intérprete de Python estándar:

  • python -i setup.py , como se explica en la respuesta de tzaman
  • setup.py modo interactivo desde setup.py , como se explica en la respuesta de Jordan P
  • configurando la variable de entorno PYTHONSTARTUP=setup.py .

La última es útil si desea iniciar y detener Python cientos de veces. Simplemente export PYTHONSTARTUP=setup.py y mientras esté en el mismo shell, siempre se cargará setup.py . O, si desea que sea más permanente, póngalo en su perfil (o en las Variables de entorno del Panel de control del sistema de Windows o lo que sea).

PYTHONSTARTUP es especialmente útil con virtualenvwrapper y su gancho post_activate . Simplemente configure el export PYTHONSTARTUP=${VIRTUAL_ENV}/setup.py para export PYTHONSTARTUP=${VIRTUAL_ENV}/setup.py y podrá tener una configuración diferente para cada entorno.

De hecho, lo que -i realmente hace es, en efecto, reemplazar PYTHONSTARTUP con un valor temporal de una sola vez.


IPython tiene su propio sistema de configuración y personalización muy potente (pero algo complicado). Puede crear una docena de perfiles diferentes y editar cada uno para habilitar y deshabilitar el uso de -i y PYTHONSTARTUP , cambiar PYTHONSTARTUP para usar un nombre de variable diferente, ejecutar varias líneas de código cada vez que se inicie un kernel, y así sucesivamente. La mayor parte de lo que desea está en las opciones de Terminal IPython , si lo está utilizando en la terminal.