Какой официальный «предпочтительный» способ установки pip и virtualenv для всей системы? - PullRequest
86 голосов
/ 07 апреля 2011

Это то, что люди рекомендуют чаще всего:

$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install virtualenv

Или это, которое я получил от http://www.pip -installer.org / ru / latest / installation.html :

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...

Или что-то совсем другое?

Ответы [ 16 ]

89 голосов
/ 11 июля 2013

Если вы можете установить последнюю версию Python (2.7.9 и выше), Pip теперь в комплекте с ним.См .: https://docs.python.org/2.7//installing/index.html
Если нет:
Обновление (из заметок о выпуске):

Начиная с версии 1.5.1, pip не требует setuptools доработает get-pip.py.Кроме того, если setuptools (или распространять) еще не установлен, get-pip.py установит для вас setuptools.

Теперь я запускаю обычные:

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python

Вотофициальные инструкции по установке: http://pip.readthedocs.org/en/latest/installing.html#install-pip

РЕДАКТИРОВАТЬ 25-Jul-2013:
Изменен URL для установки setuptools.

РЕДАКТИРОВАТЬ 10-Фев-2014:
Удалена установка setuptools (спасибо @Ciantic)

РЕДАКТИРОВАТЬ 26-ИЮН-2014:
Снова обновлен URL (спасибо @LarsH)

РЕДАКТИРОВАТЬ 1 марта 2015 г .:
Пип теперь в комплекте с Python

21 голосов
/ 08 апреля 2011

http://www.pip -installer.org / ru / latest / installation.html действительно является каноническим ответом на этот вопрос.

В частности, общесистемные инструкции:

$ curl -O http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py

Раздел, процитированный в этом вопросе, является virtualenv инструкциями, а не общесистемными.Инструкции easy_install существуют дольше, но делать это больше не нужно.

16 голосов
/ 07 апреля 2011

Этот ответ поступил от @webology в Twitter:

$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install --upgrade pip virtualenv virtualenvwrapper

Мои добавленные заметки:

  • В Mac / Windows (и Linux, если apt-репо устарело), ​​вы 'Замените первый шаг загрузкой setuptools из http://pypi.python.org/pypi/setuptools
  • . В Windows вам придется пропустить virtualenvwrapper с последнего шага и каким-то образом установить его вручную.Я не знаю, есть ли способ сделать это без Cygwin, но я надеюсь на это.
4 голосов
/ 03 октября 2012

В Ubuntu 12.04 мне повезло, просто используя менеджер пакетов:

sudo apt-get install python-pip virtualenvwrapper
3 голосов
/ 14 апреля 2015
3 голосов
/ 08 апреля 2011

На самом деле нет ни одного «ответа» на этот вопрос, но определенно есть несколько полезных понятий, которые могут помочь вам принять решение.

Первый вопрос, на который нужно ответить в вашем случае использования: «Хочу ли я использовать системный Python?» Если вы хотите использовать Python, распространяемый вместе с вашей операционной системой, то использовать метод установки apt-get может быть просто хорошо. Однако, в зависимости от способа распространения операционной системы, вам все равно придется задать еще несколько вопросов, таких как «Хочу ли я установить несколько версий этого пакета?» Если ответ да, то, вероятно, не стоит использовать что-то вроде apt. Dpkg в значительной степени просто распакует архив в корне файловой системы, так что именно сопровождающий пакета должен убедиться, что пакет устанавливается безопасно при минимальных допущениях. В случае большинства пакетов Debian я бы предположил (кто-то может поправить меня здесь), что они просто распаковывают и предоставляют пакет верхнего уровня.

Например, скажем, пакет "virtualenv", вы получите /usr/lib/python2.x/site-packages/virtualenv. Если вы установите его с easy_install, вы получите что-то вроде /usr/lib/python2.x/site-packages/virtualenv.egg-link, которое может указывать на /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.egg, которое может быть каталогом или молнией. Pip делает нечто подобное, хотя он не использует яйца и вместо этого помещает пакет верхнего уровня прямо в каталог lib.

Возможно, я не в курсе, но дело в том, что каждый метод учитывает разные потребности. Вот почему такие инструменты, как virtualenv, полезны, так как они позволяют вам помещать в песочницу ваши библиотеки Python, так что вы можете иметь любую нужную комбинацию библиотек и версий.

Setuptools также позволяет устанавливать пакеты как многоверсионные, что означает, что единственное мо dule_name.egg-link не создано. Для импорта этих пакетов вам нужно использовать pkg_resources и функцию __import__.

Возвращаясь к исходному вопросу, если вы довольны системным питоном и планируете использовать virtualenv и pip для создания сред для различных приложений, тогда установка virtualenv и / или pip на системном уровне с помощью apt-get представляется совершенно уместной. , Однако следует предостеречь, что если вы планируете обновить свои дистрибутивы Python, это может иметь волновой эффект через ваши virtualenvs, если вы вернетесь к пакетам своего системного сайта.

Я должен также упомянуть, что ни один из этих вариантов по своей природе не лучше, чем другие. Они просто используют разные подходы. Использование системной версии является отличным способом установки приложений Python, но это может быть очень сложный способ разработки с Python. Простота установки и настройки очень удобна в мире без virtualenv, но если вам нужно использовать разные версии одной и той же библиотеки, она также становится довольно громоздкой. Pip и virtualenv действительно действуют как виртуальная машина. Вместо того, чтобы устанавливать вещи рядом, вы просто создаете совершенно новую среду. Недостатком здесь является то, что через 30+ virtualenvs вы могли бы использовать довольно много дискового пространства и загромождать свою файловую систему.

Как вы можете видеть, со многими вариантами трудно сказать, какой метод использовать, но с небольшим исследованием ваших вариантов использования вы сможете найти метод, который работает.

3 голосов
/ 07 апреля 2011

Нет предпочтительного метода - все зависит от ваших потребностей. Часто по какой-либо причине в системе должны быть разные интерпретаторы Python. В этом случае вам нужно установить вещи индивидуально для каждого переводчика. Кроме того: я предпочитаю устанавливать вещи самостоятельно, а не зависеть от предварительно упакованных вещей, которые иногда вызывают проблемы - но это только один из возможных вариантов.

2 голосов
/ 25 августа 2015

В Raspbian даже нет необходимости упоминать python2.7. Действительно, это лучший способ установить pip, если версия Python меньше 2.7.9.

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python

Благодаря @ tal-weiss

2 голосов
/ 27 января 2014

Для установки pip на mac (osx) мне пригодился следующий лайнер:

sudo easy_install pip
2 голосов
/ 23 июня 2013

Начиная с пакетов дистрибутивов, вы можете использовать:

sudo apt-get install python-virtualenv

, который позволяет создавать virtualenvs, или

sudo apt-get install python{,3}-pip

, который позволяет устанавливать произвольные пакеты в домашний каталог.

Если вы привыкли к virtualenv, первая команда даст вам все, что вам нужно (помните, что pip в комплекте и будет установлен в любом созданном вами virtualenv).

Если вы просто хотите установитьпакетов, вторая команда дает вам то, что вам нужно.Используйте pip как это:

pip install --user something

и вставьте что-то вроде

PATH=~/.local/bin:$PATH

в свой ~/.bashrc.


Если ваш дистрибутив древний и вы неЕсли вы вообще не хотите использовать его пакеты (за исключением, возможно, самого Python), вы можете скачать virtualenv, как tarball или как отдельный скрипт:

wget -O ~/bin/virtualenv https://raw.github.com/pypa/virtualenv/master/virtualenv.py
chmod +x ~/bin/virtualenv

Если ваш дистрибутив болееВ Python3.3 есть встроенные виртуоподобные способности:

python3 -m venv ./venv

Это работает намного быстрее, но setuptools и pip не включены.

...