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

StackOverflow https://stackoverflow.com/questions/171785

  •  05-07-2019
  •  | 
  •  

Вопрос

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

Как вам удается держать все под контролем?

Это было полезно?

Решение

Мой совет:

Другие советы

В дополнение к PEP8 и easy_install вам следует проверить virtualenv. Virtualenv позволяет вам иметь несколько разных деревьев библиотек Python. На работе мы используем virtualenv с загрузочной средой для быстрой настройки среды разработки / производства, в которой мы все синхронизированы с версиями библиотеки w.r.t и т. Д. Обычно мы координируем обновления библиотеки.

Существует несколько семейств компонентов Python.

<Ол>
  • Материал, который поставляется с Python. Это позаботится о себе.

  • Материал, который вы получили с easy_install. Это также само по себе.

  • Пакеты, которые вы должны были получить другим способом, как TARballs или SVN. Создайте папку Компоненты . Сначала загрузите туда файлы SVN. Каждый раз. Делайте установку оттуда.

  • Написанные вами пакеты можно использовать повторно. У меня есть папка Projects с каждым проектом в этой папке. Если проект многоразового использования, у него есть setup.py , и я фактически запускаю установку, как будто я ее скачал. У меня их немного, но мало. Некоторые из них могут стать проектами с открытым исходным кодом.

  • Последние приложения, которые вы пишете. У меня есть папка в Проекты с каждым из этих приложений верхнего уровня. Обычно это большие, бессвязные вещи (например, сайты Django), в которых нет setup.py . Зачем? Они часто бывают довольно сложными, и для управления ими требуется всего несколько серверных установок, и каждая из этих серверных установок уникальна. Обычно они используют PYTHONPATH для идентификации своих частей.

  • Обратите внимание на общую тему. Это либо загруженные вами компоненты, либо проекты, над которыми вы работаете.

    Кроме того, я держу это отдельно (в определенной степени) от клиента. У меня есть главный каталог клиентских папок, в каждой из которых есть Проекты, а в каждом проекте - Продажи и Доставка. Не во всех проектах есть как продажи, так и доставка.

    Может быть, PEP8 и easy_install может вам помочь?

    Я храню весь исходный код для своих пакетов в ~ / Packages /, а затем выполняю стандартную установку с помощью " python2.5 setup.py install " на них. Это бросает в (для меня) /Library/Frameworks/Python/Versions/current/lib/python2.5/site-packages/. Для разработки моего собственного программного обеспечения у меня есть псевдонимы, настроенные для переключения между trunk / branch / 1.0 и т. Д., Предварительно добавив PYTHONPATH. (Я должен запустить 'setup.py build_ext --inplace' в каждом из этих каталогов, прежде чем они будут импортированы должным образом.)

    Стоит отметить, что в Python2.6 есть каталог сайтов-пакетов для пользователя , что может оказаться более удобным.

    " Модули " Страница документации Python - это полезное руководство по организации кода, в частности "пакетов". разделы

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

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top