Uso del Import en Python

Alberto Valverde alberto en toscat.net
Lun Ene 28 20:58:28 CET 2008


Oswaldo Hernández wrote:
> Francisco Perez escribió:
>> Hola lista...
>> Tengo una duda.. Como puedo dentro de una jerarquia de directorios
>> importar los modulos dentro de esos directorios? Hasta ahora solo
>> conozco las formas elementales de usar el Import:
>>
>> import module
>> from module import function
>> from module import *
>>
>> queria saber si alguien conoce alguna manera de importar un modulo
>> pasandole la ubicacion del mismo o algo parecido.
>>
> 
> import directorio.modulo as modulo
> 
> Directorio debe de estar en la ruta de pythonpath

Y "directorio" debe ser un paquete, es decir, contener un fichero
__init__.py vacío aunque sea.

Para importar un módulo en un lugar arbitrario que no sea un paquete
éste debe estar en PYTHONPATH, como bien ha dicho Oswaldo. Éste lo
puedes establecer antes de arrancar el script modificando la variable de
entorno:

PYTHONPATH=/mi/ruta/al/direcorio:${PYTHONPATH} python miscript.py

o, una vez dentro del intérprete añadiéndolo a sys.path:

import sys
sys.path.insert(0, "/mi/ruta/al/direcorio")

A mi personalmente trastear con el pythonpath no me gusta demasiado,
prefiero dejar que setuptools se encargue de ello.

Algún día te recomiendo le eches un vistazo a éste [1] y a virtualenv
[2] para instalaciones más robustas y reproducibles. Según creo recordar
setuptools va camino de ser incorporado en python 2.6 (aunque a lo mejor
me lo invento [3] ;)

Alberto

[1] http://peak.telecommunity.com/DevCenter/setuptools
[2] http://pypi.python.org/pypi/virtualenv
[3] Parece que no del todo...
http://mail.python.org/pipermail/python-dev/2007-May/072891.html
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es