Когда дело доходит до организации модулей python, моя система Mac OS X является беспорядком. У меня есть пакеты, которые лежат повсюду на моем hdd, и нет конкретной системы для их организации.
Как вы все управляете?
Когда дело доходит до организации модулей python, моя система Mac OS X является беспорядком. У меня есть пакеты, которые лежат повсюду на моем hdd, и нет конкретной системы для их организации.
Как вы все управляете?
Мой совет:
paster create
(см. http://pythonpaste.org), чтобы создать исходный макет каталога.В дополнение к PEP8 и easy_install вы должны проверить virtualenv. Virtualenv позволяет вам иметь несколько разных библиотек библиотеки python. На работе мы используем virtualenv с загрузочной средой, чтобы быстро настроить среду разработки/производства, где все мы находимся в версиях библиотеки sync w.r.t и т.д. Мы обычно координируем обновление библиотек.
Существует несколько семейств компонентов Python.
Материал, который поставляется с Python. Это заботится о себе.
Материал, который вы получили с помощью easy_install. Это также заботится о себе.
Пакеты, которые вам нужно было получить другим способом, либо как TARballs, так и SVN-кавычки. Создайте папку Components
. Сначала поставьте загрузки или SVN. Каждый раз. Устанавливается оттуда.
Пакеты, которые вы написали, можно использовать повторно. У меня есть папка Projects
с каждым проектом в этой папке. Если проект является многократно используемым, он имеет setup.py
, и я фактически запускаю установку, как если бы я ее загрузил. У меня их мало, но несколько. Некоторые из них могут стать проектами с открытым исходным кодом.
Окончательные приложения, которые вы пишете. У меня есть папка в Projects
с каждым из этих приложений верхнего уровня. Обычно это большие, бессвязные вещи (например, сайты Django) и не имеют setup.py
. Зачем? Они часто довольно сложны, и только несколько серверных установок управляются, и каждая из этих установок сервера уникальна. Они обычно полагаются на PYTHONPATH
, чтобы идентифицировать их части.
Обратите внимание на общую тему. Или они являются компонентами, которые вы загрузили, или они являются проектами, над которыми вы работаете.
Кроме того, я сохраняю это отдельно (в некоторой степени) от клиента. У меня есть главный каталог клиентских папок, каждый из которых имеет проекты, а у каждого проекта есть Sales and Delivery. Не все проекты имеют как продажи, так и доставку.
Может быть PEP8 и easy_install может помочь вам
Я сохраняю весь исходный код для своих пакетов внутри ~/Packages/, а затем выполняю стандартную установку с установкой python2.5 setup.py install. Это бросается в (для меня)/Library/Frameworks/Python/Versions/current/lib/python2.5/site-packages/. Для разработки моего собственного программного обеспечения у меня есть псевдонимы, настроенные для переключения между соединительными линиями/ветвями/1.0 и т.д., Предварительно предваряя PYTHONPATH. (Мне нужно запустить setup.py build_ext --inplace в каждом из этих каталогов, прежде чем они будут импортированы правильно.)
Стоит отметить, что Python2.6 имеет каталог сайтов для каждого пользователя, который вы можете найти более удобным.
Страница документации по модулю Python "Модули" является полезным руководством по организации кода, в частности разделам "пакеты"
Мой совет состоит в том, чтобы попытаться поместить все в каталог вашего сайта (-ов), если у вас нет веских оснований. И я стараюсь, чтобы избежать easy_install, потому что я нахожу, что он имеет тенденцию крутить мой sys.path с местами яйца, но это только я. Некоторые люди считают это полезным.
Если у вас есть много программ, которые используют разные библиотеки, которые могут конфликтовать друг с другом, вы также можете проверить virtualenv.
Просто наткнулся на этот сайт из другого вопроса StackOverflow: http://infinitemonkeycorps.net/docs/pph/ Это касается не только размещения модулей, но после того, как вы разместите его, напишите, как вы можете легко обрабатывать документацию, тестирование и распространение.