Как вы организовываете модули Python? - программирование
Подтвердить что ты не робот

Как вы организовываете модули Python?

Когда дело доходит до организации модулей python, моя система Mac OS X является беспорядком. У меня есть пакеты, которые лежат повсюду на моем hdd, и нет конкретной системы для их организации.

Как вы все управляете?

4b9b3361

Ответ 1

Мой совет:

  • Прочитайте Установка модулей Python.
  • Прочитайте Распространение модулей Python.
  • Начать использование easy_install из setuptools. Прочтите документацию для setuptools.
  • Всегда используйте virtualenv. Каталог моих сайтов содержит setuptools и virtualenv только.
  • Ознакомьтесь с новым проектом Ian Bicking pyinstall.
  • Следуйте всем Ian Bicking работает. Это всегда добро.
  • При создании собственных пакетов используйте distutils/setuptools. Рассмотрите возможность использования paster create (см. http://pythonpaste.org), чтобы создать исходный макет каталога.

Ответ 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 имеет каталог сайтов для каждого пользователя, который вы можете найти более удобным.

Ответ 7

Мой совет состоит в том, чтобы попытаться поместить все в каталог вашего сайта (-ов), если у вас нет веских оснований. И я стараюсь, чтобы избежать easy_install, потому что я нахожу, что он имеет тенденцию крутить мой sys.path с местами яйца, но это только я. Некоторые люди считают это полезным.

Если у вас есть много программ, которые используют разные библиотеки, которые могут конфликтовать друг с другом, вы также можете проверить virtualenv.

Ответ 8

Просто наткнулся на этот сайт из другого вопроса StackOverflow: http://infinitemonkeycorps.net/docs/pph/ Это касается не только размещения модулей, но после того, как вы разместите его, напишите, как вы можете легко обрабатывать документацию, тестирование и распространение.