Недавний прогресс
Март 2014 : хорошие новости! Python 3.4 поставляется с Pip. Pip уже давно является стандартным менеджером пакетов Python. Вы можете установить такой пакет :
pip install httpie
Wahey! Это лучшая особенность любого выпуска Python. Это делает сообщество доступным для всех. Новички больше не исключаются из использования общественных библиотек из-за чрезмерной сложности установки.
Тем не менее , остается ряд выдающихся разочарований от опыта упаковки Python. В совокупности, они делают Python очень нежелательным для новичков. Кроме того, долгая история пренебрежения (т. Е. Отсутствие доставки с менеджером пакетов в течение 14 лет с Python 2.0 до Python 3.3) нанесла ущерб сообществу. Я опишу оба ниже.
Выдающиеся разочарования
Важно понимать, что хотя опытные пользователи могут обходить эти проблемы, они являются серьезными препятствиями для новичков в Python. На самом деле, сложность и недружественность пользователей могут отпугнуть многих из них.
Сайт PyPI не помогает
Каждый язык с менеджером пакетов имеет официальный (или квазиофициальный) репозиторий для сообщества для загрузки и публикации пакетов. Python имеет индекс пакета Python, PyPI. https://pypi.python.org/pypi
Давайте сравним его страницы со страницами RubyGems и Npm (менеджер пакетов Node).
- https://rubygems.org/gems/rails RubyGems страница для пакета
rails
- https://www.npmjs.org/package/express Страница Npm для пакета
express
- https://pypi.python.org/pypi/simplejson/ страница PyPI для пакета
simplejson
Вы увидите, что страницы RubyGems и Npm начинаются с однострочного описания пакета, а затем с большими дружескими инструкциями по его установке.
Между тем, горе любому несчастному пользователю Python, который наивно обращается к PyPI. На https://pypi.python.org/pypi/simplejson/ они не найдут таких полезных инструкций. Тем не менее, есть большая зеленая ссылка «Скачать». Это не лишено смысла следовать этому. Ага, они кликают! Их браузер загружает .tar.gz
файл. Многие пользователи Windows не могут даже открыть его, но если они упорствуют, они могут в конечном итоге извлечь его, а затем запустить setup.py
и в конечном итоге с помощью Google setup.py install
. Некоторые сдаются и заново изобретают колесо ..
Конечно, все это неправильно. простой способ установить пакет с помощью команды Pip. Но PyPI даже не упомянул Pip. Вместо этого он вел их по архаичному и утомительному пути.
Ошибка: не удается найти vcvarsall.bat
Numpy - одна из самых популярных библиотек Python. Попробуйте установить его с Pip, вы получите это загадочное сообщение об ошибке:
Ошибка: не удается найти vcvarsall.bat
Попытка исправить это один из самых популярных вопросов о переполнении стека: « ошибка: не удается найти vcvarsall.bat »
Мало кто преуспевает.
Для сравнения, в той же ситуации Ruby печатает это сообщение, которое объясняет, что происходит и как это исправить:
Пожалуйста, обновите ваш PATH, чтобы включить инструменты сборки, или загрузите DevKit с http://rubyinstaller.org/downloads и следуйте инструкциям на http://github.com/oneclick/rubyinstaller/wiki/Development-Kit.
Публиковать пакеты сложно
Ruby и Nodejs поставляются с полнофункциональными менеджерами пакетов, Gem (с 2007 года) и Npm (с 2011 года), и создали сообщества для обмена, сосредоточенные вокруг GitHub. Npm делает публикацию пакетов так же легко, как и их установку, у него уже есть 64k пакетов . RubyGems перечисляет 72 тыс . Пакетов . Почтенный индекс пакета Python перечисляет только 41 КБ .
история
Летающие в лицо свои " батарейки в комплекте девиз », Python поставлялся без менеджера пакетов до 2014 года.
До Пипа стандартом де-факто была команда easy_install
. Это было ужасно неадекватно. Не было команды для удаления пакетов.
Пип был огромным улучшением. У этого были большинство особенностей Рубинового Драгоценного камня. К сожалению, Pip до недавнего времени было нелегко установить. На самом деле проблема остается главным вопросом Python о переполнении стека: « Как мне установить pip в Windows? »