Форум сайта python.su
0
Хочу создать структуру программы такого вида:
myproject/
models/
mymodel.py
search/
search_tool.py
И при этом хочу использовать mymodel.py в search_tool.py. Подскажите пожалуйста как это сделать? Стоит ли это вообще делать? Какие стандартные подходы? Спасибо.
Офлайн
253
Задавал похожий вопрос на этом форуме. Долгое обсуждение для себя просуммировал так:
В структуре проекта - связи допускаются в одном направлении сверху вниз. (в текущей папке допустимы горизонтальные связи). Если есть общие части - то их выделяют, делают из них библиотеки и инсталлируют в питон вцелом. Если глобальное инсталирование нежелательно - используют pip для создания виртуальной среды исполнения.
Если это не нравится, то можно устанавливать python path перед импротом - это не очень сложно. (http://docs.python.org/tutorial/modules.html раздел 6.1.2)
Или пользоваться относительным импортом. (6.4.2. Intra-package References) - Это посложнее.
Итог:
Для себя я так и не понял как выделить общие части, для использования в разных модулях данного приложения, хотя это конечно нужно. Сам добавляю их в глобалные библиотеки.
Отредактировано (Март 8, 2011 12:02:47)
Офлайн
72
я всегда устанавливаю пакет при разработке
python setup.py develop
Офлайн