У меня растет количество скриптов, составляющих программу, которую я пишу, и я решил, что пришло время очистить мое дерево исходных текстов и упаковать их. правильно. Я уверен, что это простой вопрос, но я не могу понять, как это сделать.
Если у меня есть группа модулей, которые подходят друг к другу, но один должен быть модулем верхнего уровня, а другие должны иметь префикс имени модуля, но фактически переходят в пакеты более низкого уровня, как я могу это сделать.
Например, я хотел иметь возможность импортировать мои данные
и получать все мои данные. но я также могу импортировать mystuff.test.test1
. Я думал, что создам такое дерево исходных текстов,
myprogram/
mystuff.py
mystuff/
__init__.py
tests/
__init__.py
test1.py
test2.py
...
Но в этом случае кажется, что mystuff /
всегда имеет приоритет над mystuff.py
, поэтому import mystuff
ничего не делает (пока mystuff /
__ init __. Py
пуст).
Каков был бы правильный подход, чтобы добиться желаемого поведения? Или это невозможно, и я должен переместить mystuff.py
в mystuff /
и получить к нему доступ как mystuff.mystuff
(повторение кажется ненужным).
Простите, если я только что пропустил что-то очевидное. Я предполагаю, что это должно быть где-то задокументировано, но я не могу найти, где где-то находится.
Обновить. Я считаю, что метод Игнасио правильный, но мне он не очень нравится! Если в моем редакторе открыто несколько файлов, и все они называются __ init __. Py
, все может запутаться. Итак, я решил оставить свою структуру как есть и связать mystuff.py
с mystuff / __ init __. Py
. Если у кого-то есть мнения о том, почему мне не следует этого делать, я бы хотел их услышать.
На самом деле, в конце концов, я свяжу наоборот, так как я не смог найти способ сделать символические ссылки разыменования distutils при создании tar.gz
, и в итоге я получил битые ссылки в мой вывод. Этот способ имеет тот же эффект и делает его счастливым.