Как вы организовываете модули Python?
Когда дело доходит до организации модулей python, моя система Mac OS X является беспорядком. У меня есть пакеты, которые лежат повсюду на моем hdd, и нет конкретной системы для их организации.
Как вы все управляете?
Ответы
Ответ 1
Мой совет:
Ответ 2
В дополнение к PEP8 и easy_install вы должны проверить virtualenv. Virtualenv позволяет вам иметь несколько разных библиотек библиотеки python. На работе мы используем virtualenv с загрузочной средой, чтобы быстро настроить среду разработки/производства, где все мы находимся в версиях библиотеки sync w.r.t и т.д. Мы обычно координируем обновление библиотек.
Ответ 3
Существует несколько семейств компонентов Python.
-
Материал, который поставляется с Python. Это заботится о себе.
-
Материал, который вы получили с помощью easy_install. Это также заботится о себе.
-
Пакеты, которые вам нужно было получить другим способом, либо как TARballs, так и SVN-кавычки. Создайте папку Components
. Сначала поставьте загрузки или SVN. Каждый раз. Устанавливается оттуда.
-
Пакеты, которые вы написали, можно использовать повторно. У меня есть папка Projects
с каждым проектом в этой папке. Если проект является многократно используемым, он имеет setup.py
, и я фактически запускаю установку, как если бы я ее загрузил. У меня их мало, но несколько. Некоторые из них могут стать проектами с открытым исходным кодом.
-
Окончательные приложения, которые вы пишете. У меня есть папка в Projects
с каждым из этих приложений верхнего уровня. Обычно это большие, бессвязные вещи (например, сайты Django) и не имеют setup.py
. Зачем? Они часто довольно сложны, и только несколько серверных установок управляются, и каждая из этих установок сервера уникальна. Они обычно полагаются на PYTHONPATH
, чтобы идентифицировать их части.
Обратите внимание на общую тему. Или они являются компонентами, которые вы загрузили, или они являются проектами, над которыми вы работаете.
Кроме того, я сохраняю это отдельно (в некоторой степени) от клиента. У меня есть главный каталог клиентских папок, каждый из которых имеет проекты, а у каждого проекта есть Sales and Delivery. Не все проекты имеют как продажи, так и доставку.
Ответ 4
Может быть PEP8 и easy_install может помочь вам
Ответ 5
Я сохраняю весь исходный код для своих пакетов внутри ~/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 имеет каталог сайтов для каждого пользователя, который вы можете найти более удобным.
Ответ 6
Страница документации по модулю Python "Модули" является полезным руководством по организации кода, в частности разделам "пакеты"
Ответ 7
Мой совет состоит в том, чтобы попытаться поместить все в каталог вашего сайта (-ов), если у вас нет веских оснований. И я стараюсь, чтобы избежать easy_install, потому что я нахожу, что он имеет тенденцию крутить мой sys.path с местами яйца, но это только я. Некоторые люди считают это полезным.
Если у вас есть много программ, которые используют разные библиотеки, которые могут конфликтовать друг с другом, вы также можете проверить virtualenv.
Ответ 8
Просто наткнулся на этот сайт из другого вопроса StackOverflow: http://infinitemonkeycorps.net/docs/pph/ Это касается не только размещения модулей, но после того, как вы разместите его, напишите, как вы можете легко обрабатывать документацию, тестирование и распространение.