Я согласен, что это довольно широкий вопрос, но я все равно попытаюсь рассмотреть его многочисленные части.
О вашем субъективном утверждении: я не понимаю, почему простота и элегантность Python подразумевают, чтовопросы упаковки и развертывания внезапно должны стать простыми вещами.Некоторые вещи, связанные с упаковкой, просты, другие нет, другие могут быть.Для пользователей было бы лучше, если бы у нас была одна полная, надежная и простая система упаковки, но она не изменилась.Был создан distutils, а затем его разработка остановилась, был создан setuptools и добавлены новые решения и новые проблемы, из-за социальных проблем раздался дистрибутив из setuptools, и, наконец, distutils2 был создан для создания одной официальной полной библиотеки.(Подробнее о Различия между дистрибутивом, distutils, setuptools и distutils2? ) Ситуация далека от идеальной для разработчиков и пользователей, но мы работаем над ее улучшением.
Как лучше всего иметьнесколько версий Python на одной машине?Используйте менеджер пакетов, если вы работаете в современной ОС, или используйте «make altinstall», если вы компилируете из исходного кода в UNIX, или используйте аналогичную неконфликтующую схему установки, если вы компилируете из исходного кода в Windows.Как пользователь Debian, я знаю, что могу вызывать отдельные версии, используя «pythonX.Y», и что то, что версии по умолчанию («python» и «python3»), решаются разработчиками Debian.Некоторые ОС начали нарушать предположение, что python == python2, поэтому в настоящее время выполняется PEP, чтобы благословить или осудить следующее: http://www.python.org/dev/peps/pep-0394/ Похоже, в Windows отсутствует способ использовать одну версию Python по умолчанию, поэтому естьдругой PEP: http://www.python.org/dev/peps/pep-0397/
Где должны быть установлены пакеты?Используя distutils, я могу устанавливать проекты в каталог пользовательских пакетов сайта (см. PEP 370 или docs.python.org).В чем именно заключается вопрос?
Параллельная установка разных версий одного и того же проекта не поддерживается.Для обсуждения изменений в системе импорта и упаковочных инструментах потребуется PEP.Прежде чем кто-то начнет это обсуждение, использование virtualenv или buildout работает достаточно хорошо.
Я не понимаю вопроса о расположении «компонентов среды Python».
В основном я использую системные пакеты(т.е. используя менеджер пакетов Aptitude в Debian).Чтобы опробовать проекты, я клонирую их репозиторий.Если мне нужно что-то, что недоступно в Aptitude, я устанавливаю (или помещаю файл .pth в репозиторий) в свой каталог site-packages пользователя.Мне не нужен пользовательский PYTHONPATH, но я изменил расположение своих пользовательских пакетов сайтов с помощью PYTHONUSERBASE.Мне не нравится концепция магии и яиц в setuptools / distribution, поэтому я не использую их.Хотя я начал использовать virtualenv и pip для одного проекта (они используют setuptools под крышкой, но я сделал частную установку, поэтому мой глобальный Python не имеет setuptools).