упаковка python для относительного импорта

Прежде всего: извините, я знаю, что было много вопросов об относительном импорте, но я просто не нашел решения . Если возможно, я хотел бы использовать следующую схему каталогов:

myClass/
    __init__.py
    test/
        demo.py
        benchmark.py
        specs.py
    src/
        __init__.py
        myClass.py

Теперь у меня следующие вопросы:

  • Каким образом тестовые файлы из пакета правильно импортируют myClass.py?

  • Как бы вы импортировали пакет извне, предполагая, что вы берете myClass в качестве подмодуля в libs / myClass или включаете / myClass?

Пока мне не удалось найти элегантного решения для этого. Насколько я понимаю Решение Гвидо , должно быть возможно выполнить из ..src import myClass , но это приведет к ошибке:

ValueError: Попытка относительного импорта в не-пакете

Похоже, что myClass не рассматривается как пакеты. Чтение документации :

Файлы __init__.py необходимы, чтобы Python обрабатывал каталоги как содержащие пакеты;

Кажется, мне не хватает чего-то, что указывает, где находятся скрипты пакета, следует ли мне использовать .pth?

70
задан Ahmad 22 February 2014 в 18:26
поделиться