En la siguiente jerarquía, ¿existe una forma conveniente y universal de hacer referencia al top_package utilizando un término genérico en todos los archivos .py a continuación? Me gustaría tener una forma consistente de importar otros módulos, de modo que incluso cuando el "top_package" cambie de nombre no se rompa nada.¿Cómo hacer referencia al módulo de nivel superior en Python dentro de un paquete?
No estoy a favor de usar la importación relativa como "..level_one_a" ya que la ruta relativa será diferente a cada archivo python a continuación. Estoy buscando un modo que:
- Cada archivo python puede tener la misma declaración de importación para el mismo módulo en el paquete.
Una referencia de desacoplamiento a "top_package" en cualquier archivo .py dentro del paquete, por lo que cualquiera que sea el nombre "top_package" cambia, nada se rompe.
top_package/ __init__.py level_one_a/ __init__.py my_lib.py level_two/ __init__.py hello_world.py level_one_b/ __init__.py my_lib.py main.py
¿Por qué quiere una referencia al módulo de nivel superior? (A veces esta respuesta revela el verdadero problema/solución.) –
Quiero hacer el paquete como reutilizable como sea posible, de modo que cuando cambio el nombre del módulo superior, todo lo que todavía puede trabajar normalmente sin tener que cambiar cada uno de los nombre de importación dentro. – hllau