Существует несколько семейств компонентов Python.
Материал, который поставляется с Python. Это заботится о себе.
Материал, который вы получили с помощью easy_install. Это также заботится о себе.
Пакеты, которые вы должны были получить другим способом, либо как TARballs, так и SVN-кассы. Создайте папку Components
. Сначала поставьте загрузки или SVN. Каждый раз. Устанавливается оттуда.
Пакеты, которые вы написали, которые можно использовать повторно. У меня есть папка Projects
с каждым проектом в этой папке. Если проект является многократно используемым, он имеет setup.py
, и я фактически запускаю установку, как если бы я ее загрузил. У меня их мало, но несколько. Некоторые из них могут стать проектами с открытым исходным кодом.
Окончательные приложения, которые вы пишете. У меня есть папка в Projects
с каждым из этих приложений верхнего уровня. Обычно это большие, бессвязные вещи (например, сайты Django) и не имеют setup.py
. Зачем? Они часто довольно сложны, и только несколько серверных установок управляются, и каждая из этих установок сервера уникальна. Они обычно полагаются на PYTHONPATH
, чтобы идентифицировать их части.
Обратите внимание на общую тему. Или они являются компонентами, которые вы загрузили, или они являются проектами, над которыми вы работаете.
Кроме того, я сохраняю это отдельно (в некоторой степени) от клиента. У меня есть главный каталог клиентских папок, каждый из которых имеет проекты, а у каждого проекта есть Sales and Delivery. Не все проекты имеют как продажи, так и доставку.
На самом деле, я делаю еще один шаг: в моих сайтах-пакетах отсутствует даже setuptools, так как (a) мне он не нужен, (b) virtualenv включает в себя копию, содержащуюся в ней, которую он может использовать при создании каждой среды; (c) некоторые версии virtualenv вызывают проблемы для меня, если они доступны для всей системы. – 2009-04-08 15:50:13