Относительный импорт и пакеты Python

Я пытаюсь создать пакет, и у меня есть древовидная структура, которая выглядит так:

dionesus/ setup.py dionesus/ __init__.py dionesus.py 

Dionesus.py имеет класс Dionesus. Инициализация .py пуста.

Как импортировать класс Dionesus без указания папки верхнего уровня?

Я должен сделать:

 import dionesus d = dionesus.dionesus.Dionesus() 

Я бы хотел, чтобы операторы импорта выглядели так:

 import dionesus d = dionesus.Dionesus() 

One Solution collect form web for “Относительный импорт и пакеты Python”

Во-первых, вы все равно можете использовать абсолютный импорт, просто используя форму from … import :

 from dionesus import dionesus d = dionesus.Dionesus() 

Очевидно, что это будет проблематично, если вам когда-либо понадобится импортировать как dionesus, так и dionesus.dionesus в один и тот же модуль, но это в значительной степени подразумевается в стремлении дать им как одно и то же недиабилизированное имя …

Кроме того, если вы находитесь в родительском или родном брате или другом родственнике dionesus.dionesus, вы можете использовать относительный импорт. В зависимости от того, где вы находитесь, все будет по-другому (в конце концов, это означает относительный); вы можете импортировать . , .dionesus , .. и т. д. Но везде, где бы это ни было, это то же самое from … import формы from … import как указано выше, только с относительным именем, а не с абсолютным. (Фактически, относительный импорт всегда использует форму from .)

 from . import dionesus d = dionesus.Dionesus() 
  • Импорт flask.ext.wtf
  • Как Python импортирует модули из .egg-файлов?
  • Создание исполняемого файла в Cython
  • Установка пакетов python на OpenShift
  • используя __init__.py
  • Установите пакет Python: «Пакет отсутствует в текущих каналах win-64»
  • Как организовать проект python, который содержит несколько пакетов, чтобы каждый файл в пакете можно было запускать отдельно?
  • Какова цель `__metaclass__ = type`?
  • cx_freeze, как включить сторонние модули, ImportError: нет модуля с именем progressbar
  • Ошибка Загрузка модуля MySQLdb и "pip install MySQLdb"
  • Python (2.7) продолжает сбой при запуске scapy через консоль или импорт его
  •  
    Interesting Posts for Van-Lav

    Как отсортировать 2D-массив (numpy.ndarray) на основе второго столбца в python?

    Настройки django для каждого приложения – лучшая практика?

    python читает файл, сохраняет новый столбец для каждого объявления линии, сохраняя тот же файл

    Ошибка Mercurial *** не удалось импортировать расширение hggit: нет модуля с именем hggit

    Запрос массива во встроенном списке

    Фильтрация координатных точек на основе ближайшего расстояния

    Как я могу выполнить тест отношения правдоподобия на линейной модели смешанного эффекта?

    Есть ли документация о числовой стабильности numpy?

    Как удалить все версии python и использовать стандартную системную версию OS X 10.10?

    В python, как я могу проверить, заканчивается ли имя файла в '.html' или '_files'?

    Ошибки при использовании функции обратного вызова Fortran в f2py

    Пути Pythonic для инициализации (сложных) элементов статических данных

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

    Использование OAuth2 с именем пользователя и паролем

    Как вызвать скрипт python на excel vba?

    Python - лучший язык программирования в мире.