Есть ли в Python система управления пакетами / модулями, похожая на ту, что есть в Ruby, где вы можете делать gem install packagename
?
При установке модулей Python я вижу только ссылки python setup.py install
, но для этого нужно сначала найти пакет.
Ответы:
Недавний прогресс
Март 2014 : хорошие новости! Python 3.4 поставляется с Pip. Pip уже давно является стандартным менеджером пакетов Python. Вы можете установить такой пакет :
Wahey! Это лучшая особенность любого выпуска Python. Это делает сообщество доступным для всех. Новички больше не исключаются из использования общественных библиотек из-за чрезмерной сложности установки.
Тем не менее , остается ряд выдающихся разочарований от опыта упаковки Python. В совокупности, они делают Python очень нежелательным для новичков. Кроме того, долгая история пренебрежения (т. Е. Отсутствие доставки с менеджером пакетов в течение 14 лет с Python 2.0 до Python 3.3) нанесла ущерб сообществу. Я опишу оба ниже.
Выдающиеся разочарования
Важно понимать, что хотя опытные пользователи могут обходить эти проблемы, они являются серьезными препятствиями для новичков в Python. На самом деле, сложность и недружественность пользователей могут отпугнуть многих из них.
Сайт PyPI не помогает
Каждый язык с менеджером пакетов имеет официальный (или квазиофициальный) репозиторий для сообщества для загрузки и публикации пакетов. Python имеет индекс пакета Python, PyPI. https://pypi.python.org/pypi
Давайте сравним его страницы со страницами RubyGems и Npm (менеджер пакетов Node).
rails
express
simplejson
Вы увидите, что страницы RubyGems и Npm начинаются с однострочного описания пакета, а затем с большими дружескими инструкциями по его установке.
Между тем, горе любому несчастному пользователю Python, который наивно обращается к PyPI. На https://pypi.python.org/pypi/simplejson/ они не найдут таких полезных инструкций. Тем не менее, есть большая зеленая ссылка «Скачать». Это не лишено смысла следовать этому. Ага, они кликают! Их браузер загружает
.tar.gz
файл. Многие пользователи Windows не могут даже открыть его, но если они упорствуют, они могут в конечном итоге извлечь его, а затем запуститьsetup.py
и в конечном итоге с помощью Googlesetup.py install
. Некоторые сдаются и заново изобретают колесо ..Конечно, все это неправильно. простой способ установить пакет с помощью команды Pip. Но PyPI даже не упомянул Pip. Вместо этого он вел их по архаичному и утомительному пути.
Ошибка: не удается найти vcvarsall.bat
Numpy - одна из самых популярных библиотек Python. Попробуйте установить его с Pip, вы получите это загадочное сообщение об ошибке:
Попытка исправить это один из самых популярных вопросов о переполнении стека: « ошибка: не удается найти vcvarsall.bat »
Мало кто преуспевает.
Для сравнения, в той же ситуации Ruby печатает это сообщение, которое объясняет, что происходит и как это исправить:
Публиковать пакеты сложно
Ruby и Nodejs поставляются с полнофункциональными менеджерами пакетов, Gem (с 2007 года) и Npm (с 2011 года), и создали сообщества для обмена, сосредоточенные вокруг GitHub. Npm делает публикацию пакетов так же легко, как и их установку, у него уже есть 64k пакетов . RubyGems перечисляет 72 тыс . Пакетов . Почтенный индекс пакета Python перечисляет только 41 КБ .
история
Летающие в лицо свои " батарейки в комплекте девиз », Python поставлялся без менеджера пакетов до 2014 года.
До Пипа стандартом де-факто была команда
easy_install
. Это было ужасно неадекватно. Не было команды для удаления пакетов.Пип был огромным улучшением. У этого были большинство особенностей Рубинового Драгоценного камня. К сожалению, Pip до недавнего времени было нелегко установить. На самом деле проблема остается главным вопросом Python о переполнении стека: « Как мне установить pip в Windows? »
источник
gem install X
похоже, работает на всех платформах. Итак, как они справились с этим для драгоценных камней, которые требуют компиляции кода C на Windows?Индекс пакетов Python (PyPI) кажется стандартным:
pip install MyProject
pip install --upgrade MyProject
pip install MyProject==1.0
Вы можете установить менеджер пакетов следующим образом:
Ссылки:
источник
И только , чтобы обеспечить контраст, есть также пип .
источник
Как разработчик Ruby и Perl и парень, изучающий Python, я не нашел, что easy_install или pip эквивалентны RubyGems или CPAN.
Я стараюсь поддерживать в своих системах разработки последние версии модулей по мере их обновления разработчиками и замораживать производственные системы в установленных версиях. Как RubyGems, так и CPAN упрощают поиск модулей, перечисляя имеющиеся возможности, а затем устанавливая и позже обновляя их по отдельности или в больших количествах, если это необходимо.
easy_install и pip упрощают установку модуля, РАЗ, когда я обнаружил его с помощью поиска в браузере или узнал об этом другими способами, но они не скажут мне, что доступно. Я могу явно назвать модуль для обновления, но приложения не будут сообщать мне, что было обновлено, и не будут обновлять все оптом, если я захочу.
Итак, базовая функциональность есть в pip и easy_install, но отсутствуют некоторые функции, которые хотелось бы видеть, чтобы сделать их более удобными и простыми в использовании и наравне с CPAN и RubyGems.
источник
Есть по крайней мере два, easy_install и его преемник пип .
источник
По крайней мере, в конце 2014 года следует рассмотреть возможность распространения Continuum Analytics Anaconda Python с менеджером пакетов conda . Он решает большинство серьезных проблем, с которыми люди сталкиваются в целом с Python (управление различными версиями Python, обновление версий Python, управление пакетами, виртуальные среды, совместимость с Windows / Mac) в одной последовательной загрузке.
Это позволяет вам делать практически все, что вы могли бы захотеть с Python, без необходимости менять систему вообще. Мое следующее предпочтительное решение - pip + virtualenv, но вам нужно либо установить virtualenv в системный Python (а ваша системная версия Python может не соответствовать нужной версии), либо выполнить сборку из исходного кода . Анаконда делает весь этот процесс одним нажатием кнопки, а также добавляет множество других функций.
источник
Это было бы easy_install .
источник
easy_install
сначала проверьте даты. Это был верный совет, когда его дали почти 7 лет назад . Я не думаю, что мы, ответчики, будем регулярно пересматривать это, чтобы обновить, так что отрицательное голосование глупо.Это называется setuptools. Вы запускаете его с помощью команды "easy_install".
Вы можете найти каталог на http://pypi.python.org/
источник
Я не вижу ни MacPorts, ни Homebrew, упомянутых здесь в других ответах, но, поскольку я вижу, что они упоминались в других местах в Stack Overflow для связанных вопросов, я добавлю свои собственные 0,02 доллара США, которые многие считают MacPorts не просто пакетом. менеджер пакетов в целом (на сегодняшний день они перечисляют 16311 пакетов / портов, 2931 соответствует «python», хотя и только для Mac), но также и как достойный (возможно, лучший) менеджер пакетов для пакетов / модулей Python:
Вопрос
«... какой метод используют разработчики Mac Python для управления своими модулями?»
ответы
«MacPorts идеально подходит для Python на Mac».
«Лучший способ - использовать MacPorts».
«Я предпочитаю MacPorts ...»
«С моей настройкой MacPorts ...»
«Я использую MacPorts для установки ... сторонних модулей, отслеживаемых MacPorts»
SciPy
«Mac (в отличие от Linux) не поставляется с менеджером пакетов, но есть пара популярных менеджеров пакетов, которые вы можете установить. Macports ...»
Я до сих пор спорю о том, стоит ли использовать MacPorts самостоятельно, но в данный момент я склоняюсь в этом направлении.
источник
pip install <your_favorite_package>
В Windows установите http://chocolatey.org/ затем
Откройте новое окно cmd с обновленным PATH. Далее делай
После этого вы можете
источник
Поскольку никто не упомянул здесь pipenv , я хотел бы описать свои взгляды, почему каждый должен использовать его для управления пакетами Python.
Как уже упоминалось @ColonelPanic, существует несколько проблем с индексом пакетов Python, а также с pip и virtualenv .
Pipenv решает большинство проблем с pip, а также предоставляет дополнительные функции.
Особенности Pipenv
Pipenv предназначен для замены pip и virtualenv, что означает, что pipenv автоматически создаст отдельную виртуальную среду для каждого проекта, что позволит избежать конфликтов между различными версиями Python / версиями пакетов для разных проектов.
Если вы раньше работали над проектами Python, вы бы поняли, что эти функции упрощают управление пакетами.
Другие Команды
check
проверяет уязвимости безопасности и утверждает, что текущая среда соответствует требованиям PEP 508. ( что я считаю отличной возможностью, особенно после этого - вредоносные пакеты на PyPi )graph
покажет вам график зависимостей ваших установленных зависимостей.Вы можете прочитать больше об этом здесь - Pipenv .
Монтаж
Вы можете найти документацию по установке здесь
PS: Если вам понравилась работа с запросами пакета Python , вам было бы приятно узнать, что pipenv принадлежит тому же разработчику Кеннету Рейтцу
источник
В 2019 году поэзия - это менеджер пакетов и зависимостей, который вы ищете.
https://github.com/sdispater/poetry#why
Это современно, просто и надежно.
источник
Поэзия это то, что вы ищете. Он заботится об управлении зависимостями, виртуальных средах, работе.
источник