Импорт Python с различными структурами каталогов - PullRequest
3 голосов
/ 17 февраля 2010

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

modules/check/lib/check.py
modules/edit/lib/edit.py

Во время установки файлы Python помещаются в один каталог program_name под site-packages Python. Поэтому все модули используют синтаксис import program_name.edit.

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

Поэтому мои вопросы: без изменения структуры каталогов, как я могу убедиться, что modules/check/lib/check.py импортирует из modules/edit/lib/edit.py и site-packages/program_name/check.py импортирует из site-packages/program_name/edit.py? И для возможной реорганизации, каковы лучшие практики для структуры каталогов и импорта в такой среде?

Ответы [ 2 ]

2 голосов
/ 17 февраля 2010

Вы можете просто добавить каталоги /modules/ в вашу PYTHONPATH в вашей среде разработки.После установки в пакетах сайта вызов import edit внутри check.py импортирует правильный модуль, поскольку они находятся в одном каталоге.Вызов import edit из вашего окружения разработчика импортирует тот, который вы добавили в PYTHONPATH

0 голосов
/ 17 февраля 2010

Почему бы вам не установить символические ссылки под prog_name на вашем компьютере разработчика?

...