Я должен согласиться со многими сообщениями на этом. Я использовал обоих, экстенсивно, во множестве настроек. Если бы я мог бы отменить проектное решение, оно должно было бы использовать, в спящем режиме. Мы на самом деле планировали выпуск в одном из наших продуктов для свопинга, в спящем режиме для iBatis и Spring-JDBC для подхода best-of-all-worlds. Я могу сделать, чтобы новый разработчик вошел в курс дела с помощью Spring-JDBC, Spring-MVC, МОК Spring и iBatis быстрее, чем если бы я просто определил задачу для них с, в спящем режиме.
В спящем режиме, является просто слишком сложным для этого разработчика KISS. И небеса помогают, Вы с в спящем режиме, если Ваш DBA видит сгенерированный SQL, база данных видит и передает Вас обратно с оптимизированными версиями.
Версия системного Python и ее библиотеки часто используются программным обеспечением в дистрибутиве. Пока программное обеспечение, которое вы используете, поддерживает те же версии python и всех библиотек, что и ваш дистрибутив, использование пакетов распространения будет работать нормально.
Однако довольно часто вам нужны разрабатываемые версии пакетов или более новая версия или более старые версии. И тогда это больше не работает.
Поэтому обычно рекомендуется установить вашу собственную версию Python, которую вы используете для разработки, и создать среду разработки с помощью buildout или virtualenv или и то и другое, чтобы изолировать системный питон и среду разработки друг от друга.
Существует два совершенно противоположных лагеря: один выступает за пакеты, предоставляемые системой, а другой - за отдельную установку. Я лично в лагере "системные пакеты". Ниже я приведу аргументы с каждой стороны.
Системные пакеты Pro: системный упаковщик уже заботится о зависимости и соблюдении общих системных политик (таких как макет файла). Системные пакеты предоставляют обновления безопасности, но при этом заботятся о том, чтобы не нарушить совместимость - поэтому они иногда возвращают исправления безопасности, которые не были созданы авторами восходящего потока. Системные пакеты "безопасны" по отношению к. обновления системы: после обновления системы у вас, вероятно, также будет новая версия Python, но все ваши модули Python останутся там, если они поступают из системного упаковщика. Это все из личного опыта работы с Debian.
Con системные пакеты: не все программное обеспечение может быть предоставлено как системный пакет или не в последней версии; самостоятельная установка чего-либо в систему может сломать системные пакеты. Обновления могут привести к поломке вашего приложения.
Отдельная установка Pro: некоторые люди (в частности, разработчики веб-приложений) утверждают, что вам абсолютно необходима повторяемая установка, включающая только нужные вам пакеты и полностью отделенная от системного Python. Это выходит за рамки самостоятельно устанавливаемых и системных пакетов, поскольку даже при самостоятельной установке вы все равно можете изменить системный python; при отдельной установке - нет. Как говорит Леннарт, теперь существуют специальные цепочки инструментов для поддержки этой настройки. Люди утверждают, что только такой подход может гарантировать повторяемость результатов.
Против отдельной установки: вам нужно исправлять ошибки самостоятельно, и вам нужно убедиться, что все ваши пользователи используют отдельную установку. В случае веб-приложений последнего обычно легко достичь.