Как ссылаться на модуль верхнего уровня в Python внутри пакета?

В приведенной ниже иерархии есть удобный и универсальный способ ссылки на top_package с использованием общего термина во всех .py файлах ниже? Я хотел бы иметь последовательный способ импорта других модулей, чтобы даже при изменении имени "top_package" ничего не ломалось.

Я не сторонник использования относительного импорта, такого как "..level_one_a", поскольку относительный путь будет отличаться для каждого файла python, указанного ниже. Я ищу способ, который:

  1. Каждый файл python может иметь один и тот же оператор импорта для одного и того же модуля в пакете.
  2. Разъединяющая ссылка на «top_package» в любом файле .py внутри пакета, так что какое бы имя «top_package» ни изменилось, ничего не сломается.

     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
    
19
задан hllau 2 January 2012 в 23:16
поделиться