2012-09-25 17 views
5

Al trabajar en un proyecto, mis scripts a menudo tienen un código de placa de caldera, como agregar rutas a sys.path e importar los módulos de mi proyecto. Resulta tedioso ejecutar este código de placa de caldera cada vez que inicio el intérprete interactivo para verificar rápidamente algo, por lo que me pregunto si es posible pasarle un script al intérprete antes de que se vuelva "interactivo".¿Es posible hacer que el intérprete interactivo de Python ejecute un script en carga?

Respuesta

6

Eso se puede hacer usando la opción -i. Citando el texto intérprete de ayuda:

 
-i  : inspect interactively after running script; forces a prompt even 
     if stdin does not appear to be a terminal; also PYTHONINSPECT=x 

Así que el intérprete se ejecuta la secuencia de comandos, a continuación, hace que la pronta interactiva disponible después de la ejecución.

Ejemplo:

 
$ python -i boilerplate.py 
>>> print mymodule.__doc__ 
I'm a module! 
>>> 

Esto también se puede hacer utilizando la variable de entorno PYTHONSTARTUP. Ejemplo:

 
$ PYTHONSTARTUP=boilerplate.py python 
Python 2.7.3 (default, Sep 4 2012, 10:30:34) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> print mymodule.__doc__ 
I'm a module! 
>>> 

Yo personalmente prefiero el primer método, ya que no muestra las tres líneas de información, pero tampoco va a hacer el trabajo.

+0

funciona en 'ipython' también. –

+1

También existe la variable de entorno '' PYTHONSTARTUP''. Yo uso esto para configurar una calculadora pitonica importando sympy et al. También es útil para [agregar compleción de pestañas] (http://docs.python.org/library/rlcompleter.html). –

+0

@JonasWielicki: ¡Genial! Lo agregué a la respuesta – Hubro

Cuestiones relacionadas