Me encuentro escribiendo import numpy as np
casi cada vez que enciendo el intérprete de Python. ¿Cómo configuro el intérprete de python o ipython para que numpy se importe automáticamente?
Me encuentro escribiendo import numpy as np
casi cada vez que enciendo el intérprete de Python. ¿Cómo configuro el intérprete de python o ipython para que numpy se importe automáticamente?
Respuestas:
Utilice la variable de entorno PYTHONSTARTUP . De la documentación oficial:
Si este es el nombre de un archivo legible, los comandos de Python en ese archivo se ejecutan antes de que se muestre el primer indicador en modo interactivo. El archivo se ejecuta en el mismo espacio de nombres donde se ejecutan los comandos interactivos para que los objetos definidos o importados en él se puedan usar sin calificación en la sesión interactiva.
Entonces, simplemente cree una secuencia de comandos de Python con la declaración de importación y apunte la variable de entorno hacia ella. Habiendo dicho eso, recuerde que 'Explícito siempre es mejor que implícito', así que no confíe en este comportamiento para los scripts de producción.
Para Ipython, consulte este tutorial sobre cómo crear un archivo ipython_config
env PYTHONSTARTUP="~/.startup.py"
no funcionó para mí
export PYTHONSTARTUP=~/.python_shell_startup.py
para configurar la variable.
Para ipython, hay dos formas de lograrlo. Ambos involucran el directorio de configuración de ipython que se encuentra en ~/.ipython
.
~/.ipython/profile_default/startup/
Por simplicidad, usaría la opción 2. Todo lo que tiene que hacer es colocar un archivo .py
o .ipy
en el ~/.ipython/profile_default/startup
directorio y se ejecutará automáticamente. Entonces, podría colocarlo import numpy as np
en un archivo simple y tendrá np en el espacio de nombres de su indicador de ipython.
La opción 2 realmente funcionará con un perfil personalizado, pero el uso de un perfil personalizado le permitirá cambiar los requisitos de inicio y otra configuración según un caso particular. Sin embargo, si siempre desea np
estar disponible para usted, colóquelo en el directorio de inicio.
Para obtener más información sobre la configuración de ipython. Los documentos tienen una explicación mucho más completa.
~/.config/ipython/profile_default/startup/
y no~/.ipython/profile_default/startup/
Yo uso un archivo ~ / .startup.py como este:
# Ned's .startup.py file
print("(.startup.py)")
import datetime, os, pprint, re, sys, time
print("(imported datetime, os, pprint, re, sys, time)")
pp = pprint.pprint
Luego defina PYTHONSTARTUP = ~ / .startup.py, y Python lo usará al iniciar un shell.
Las declaraciones de impresión están ahí, así que cuando inicio el shell, recibo un recordatorio de que está en vigor y de lo que ya se ha importado. El pp
atajo también es muy útil ...
~
como sustituto de $HOME
, pero en lugar de esta ruta relativa tuve que usar una ruta absoluta en MacOS, fish y python3.
Si bien crear un script de inicio personalizado como sugiere ravenac95 es la mejor respuesta general para la mayoría de los casos, no funcionará en circunstancias en las que desee utilizar un archivo . Si a veces trabaja en Python 2.x pero desea utilizar la división moderna, solo hay una forma de hacerlo. Una vez que cree un perfil, edite el (Para Ubuntu, esto se encuentra en ) y agregue algo como lo siguiente en la parte inferior:from __future__ import X
profile_default
~/.ipython/profile_default
c.InteractiveShellApp.exec_lines = [
'from __future__ import division, print_function',
'import numpy as np',
'import matplotlib.pyplot as plt',
]
Como una alternativa más simple a la respuesta aceptada, en linux:
simplemente defina un alias, por ejemplo, póngalo alias pynp='python -i -c"import numpy as np"'
en su archivo ~ / .bash_aliases. Luego puede invocar python + numpy con pynp
, y aún puede usar solo python con python
. El comportamiento de los scripts de Python no se modifica.
PYTHONSTARTUP
solo se invoca en modo interactivo , por lo que el comportamiento de los scripts de Python se mantiene intacto de todos modos. También se podría crear un alias con una referencia de archivo:alias pynp='PYTHONSTARTUP="~/.startup.py" python'
Puede crear una secuencia de comandos de Python normal como import_numpy.py
o lo que quiera
#!/bin/env python3
import numpy as np
luego ejecútalo con la -i
bandera.
python -i import_numpy.py
Una forma como esta le dará flexibilidad para elegir solo los módulos que desee para diferentes proyectos.
Como mencionó ravenac95 en su respuesta , puede crear un perfil personalizado o modificar el perfil predeterminado. Esta respuesta es una vista rápida de los comandos de Linux necesarios para import numpy as np
automáticamente.
Si desea utilizar un perfil personalizado llamado numpy
, ejecute:
ipython profile create numpy
echo 'import numpy as np' >> $(ipython locate profile numpy)/startup/00_imports.py
ipython --profile=numpy
O si desea modificar el perfil predeterminado para importar siempre numpy:
echo 'import numpy as np' >> $(ipython locate profile default)/startup/00_imports.py
ipython
Consulte el tutorial de configuración de IPython para leer más en profundidad sobre la configuración de perfiles. Consulte .ipython/profile_default/startup/README
para comprender cómo funciona el directorio de inicio.
Mi ipython
invocación predeterminada es
ipython --pylab --nosep --InteractiveShellApp.pylab_import_all=False
--pylab
ha sido una ipython
opción desde hace algún tiempo. Importa numpy
y (partes de) matplotlib
. Agregué la --Inter...
opción para que no use la *
importación, ya que prefiero usar la explícita np....
.
Puede ser un acceso directo, un alias o un script.