ylab examples color python module package python-import

examples - Python: importa el paquete que contiene



plotly ylab (5)

En un módulo que reside dentro de un paquete, tengo la necesidad de usar una función definida dentro del __init__.py de ese paquete. ¿cómo puedo importar el paquete dentro del módulo que reside dentro del paquete, entonces puedo usar esa función?

Importar __init__ dentro del módulo no importará el paquete, sino un módulo llamado __init__ , lo que lleva a dos copias de cosas con diferentes nombres ...

¿Hay una manera pitónica de hacer esto?


Esto no responde exactamente a su pregunta, pero le sugiero que mueva la función fuera del archivo __init__.py y dentro de otro módulo dentro de ese paquete. A continuación, puede importar fácilmente esa función a su otro módulo. Si lo desea, puede tener una declaración de importación en el archivo __init__.py que también importará esa función (cuando se importe el paquete).


No estoy totalmente seguro de cuál es la situación, pero esto puede resolver su problema de "nombre diferente":

import __init__ as top top.some_function()

¿O tal vez?:

from __init__ import some_function some_function()


Si el paquete se llama testmod y tu archivo init es por lo tanto testmod/__init__.py y tu módulo dentro del paquete es submod.py luego dentro del archivo submod.py , solo deberías poder decir import testmod y usar lo que quieras que sea definido en testmod.


En Django, el archivo manage.py tiene from django.core.management import execute_manager , pero execute_manager no es un módulo. Es una función dentro del módulo __init__.py del directorio de management .


Además, comenzando en Python 2.5, las importaciones relativas son posibles. p.ej:

from . import foo

Citando de http://docs.python.org/tutorial/modules.html#intra-package-references :

Comenzando con Python 2.5, además de las importaciones relativas implícitas descritas anteriormente, puede escribir importaciones relativas explícitas con la forma del nombre de importación del módulo desde la declaración de importación. Estas importaciones relativas explícitas usan puntos iniciales para indicar los paquetes actuales y principales involucrados en la importación relativa. Desde el módulo circundante, por ejemplo, puede usar:

from . import echo from .. import formats from ..filters import equalizer