Ответ 1
Я использую pip, а не в Windows, поэтому я не могу обеспечить сравнение с опцией Windows-installer, просто некоторые сведения о pip:
- Пип построен поверх настроек setuptools и требует его установки.
- Pip - это замена (улучшение) для easy_install setuptools. Он делает все, что делает easy_install, и многое другое (убедитесь, что все нужные дистрибутивы могут быть загружены до фактической установки любого из них, чтобы избежать сломанной установки, списка установленных дистрибутивов и версий, удалить, найти PyPI, установить из файла требований с перечислением нескольких дистрибутивов и версии...).
- В настоящее время Pip Pip не поддерживает установку какой-либо формы прекомпилированных или двоичных дистрибутивов, поэтому любые дистрибутивы с расширениями, требующими компиляции, могут быть установлены только в том случае, если у вас есть соответствующий компилятор. Поддержка установки из двоичных установщиков Windows находится в дорожной карте, но это неясно, когда это произойдет.
- До недавнего времени поддержка pppup была нечеткой и непроверенной. Благодаря большой работе от Dave Abrahams, pip trunk теперь передает все свои тесты в Windows (и там есть сервер непрерывной интеграции, который помогает нам гарантировать, что он остается таким образом), но релиз еще не сделан, включая эту работу. Поэтому более надежная поддержка Windows должна появиться со следующей версией.
- Все стандартные механизмы установки пакета Python хранят все метаданные об установленных дистрибутивах в файле или файлах рядом с фактическими установленными пакетами. Distutils использует файл distribution_name-X.X-pyX.X.egg-info, pip использует аналогично названный каталог с несколькими файлами метаданных. Easy_install помещает весь установленный код Python для распространения внутри своего собственного zipfile или каталога и помещает в него каталог EGG-INFO с метаданными. Если вы импортируете пакет Python из интерактивного приглашения, проверьте значение пакета.__ file__; вы должны найти метаданные для этого дистрибутива рядом.
- Информация о установленных дистрибутивах хранится только в любом виде глобального реестра с помощью таких инструментов упаковки, как Windows, Apt или RPM. Стандартные инструменты упаковки Python не изменяют или не обращают внимание на эти списки.
- Pip (или, на мой взгляд, любой инструмент для упаковки Python) лучше всего использовать с virtualenv, который позволяет создавать изолированные в -project мини-среды Python, в которые вы можете устанавливать пакеты, не затрагивая вашу общую систему. Каждый новый virtualenv автоматически поставляется с установленным в нем пакетом.
Пара других проектов, о которых вы, возможно, захотите также знать (да, там еще!):
- distribute - это вилка setuptools, которая содержит некоторые дополнительные исправления и функции.
- distutils2 предназначен для "следующего поколения" упаковки Python. Это (надеюсь) принятие лучших функций distutils/setuptools/distribute/pip. Он разрабатывается независимо и еще не готов к использованию, но в конечном итоге должен заменить distutils в стандартной библиотеке Python и стать де-факто упаковочным решением Python.
Надеюсь, все это помогло прояснить что-то! Удачи.