Лучшие практики развертывания Python - несколько версий, стандартные места установки, инструменты упаковки и т. Д.

Много сообщений по различным аспектам этого вопроса, но я не видел сообщения, которое объединяло бы все это.

Сначала субъективное заявление: кажется, что простота, которую мы испытываем при работе с языком Python, разрушается, когда мы выходим за пределы интерпретатора и начинаем бороться с проблемами развертывания. Как лучше всего иметь несколько версий Python на одном компьютере? Куда устанавливать пакеты? Disutils vs. setuptools vs. pip и т. Д. Похоже, что когда дело доходит до развертывания, Zen of Python довольно сильно злоупотребляют. Я ощущаю жуткие отголоски опыта «ада DLL» в Windows.

Согласны ли эксперты с некоторой степенью передовой практики по этим вопросам?

Вы запускаете несколько версий Python на одной машине? Как сохранить уверенность в том, что они могут сосуществовать - и что новая версия не нарушает предположений о других процессах, которые полагаются на более раннюю версию (например, сценарии, предоставленные поставщиком ОС)? Это безопасно? Достаточно ли virtualenv?

Как лучше всего выбрать расположение различных компонентов среды Python (включая сторонние пакеты) в локальной файловой системе? Существует ли строгое или приблизительное соответствие между местоположениями для многих различных версий ОС Unixy и Windows, на которое можно положиться?

И самый темный уголок болота - какие инструменты установки вы используете (setuptools, distutils, pip и т. Д.) ) и хорошо ли они сочетаются с вашим выбором re: расположение файлов, виртуальные среды Python, путь Python и т. д.

Это похоже на сложные вопросы. Я надеюсь, что опытные питонисты, возможно, определили канонический подход (или два) к этим проблемам. Любой подход, который «держится вместе» как система, которую можно использовать с уверенностью (не ощущая себя отдельными, не связанными друг с другом инструментами), будет очень полезным.

19
задан Chris Johnson 29 August 2011 в 15:23
поделиться