with tutorial framework español djangoproject desde con cero applications python python-import python-module pythonpath

python - framework - tutorial django



¿Cómo encuentra Python un archivo de módulo si la instrucción de importación solo contiene el nombre de archivo? (4)

Además, puede ver cuál es la ruta actual utilizando el módulo sys

import sys print sys.path

En todas partes veo el código Python importando módulos usando import sys o import mymodule

¿Cómo encuentra el intérprete el archivo correcto si no se proporciona ningún directorio o ruta?


Python tiene una variable de ruta como la que tienes dentro de tu terminal. Python busca módulos en carpetas dentro de esa ruta, o en la carpeta donde se encuentra su programa.


Utiliza el PYTHONPATH , establecido como una variable de entorno, para buscar paquetes (carpetas que contienen archivos __init__.py ) y módulos (o, si ya está cargado una vez, recupera el objeto de módulo de sys.modules ).


http://docs.python.org/3/tutorial/modules.html#the-module-search-path

6.1.2. La ruta de búsqueda del módulo

Cuando se importa un módulo llamado spam , el intérprete primero busca un módulo integrado con ese nombre. Si no se encuentra, busca un archivo llamado spam.py en una lista de directorios dada por la variable sys.path . sys.path se inicializa desde estas ubicaciones:

  • El directorio que contiene el script de entrada (o el directorio actual cuando no se especifica ningún archivo).
  • PYTHONPATH (una lista de nombres de directorio, con la misma sintaxis que la variable de shell PATH ).
  • El valor predeterminado dependiente de la instalación.

Nota: en los sistemas de archivos que admiten enlaces simbólicos, el directorio que contiene la secuencia de comandos de entrada se calcula después de seguir el enlace simbólico. En otras palabras, el directorio que contiene el enlace simbólico no se agrega a la ruta de búsqueda del módulo.

Después de la inicialización, los programas de Python pueden modificar sys.path . El directorio que contiene el script que se está ejecutando se coloca al comienzo de la ruta de búsqueda, antes que la ruta de la biblioteca estándar. Esto significa que los scripts en ese directorio se cargarán en lugar de los módulos del mismo nombre en el directorio de la biblioteca. Este es un error a menos que el reemplazo esté destinado. Ver la sección Módulos estándar para más información.

Para obtener información sobre el "valor predeterminado específico de la instalación", consulte la documentación en el módulo del site .