Каков официальный "предпочтительный" способ установки pip и virtualenv в масштабах всей системы?

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

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

Или это, что я получил от http://www.pip-installer.org/en/latest/installing.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 ...

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

Ответ 1

Если вы можете установить последнюю версию Python (2.7.9 и выше), то теперь она поставляется вместе с ней. См. 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/ru/latest/installing.html#install-pip

EDIT 25-Jul-2013:
Изменен URL для установки setuptools.

EDIT 10-Feb-2014:
Удалена установка setuptools (спасибо @Ciantic)

EDIT 26-Jun-2014:
Обновлен URL снова (спасибо @LarsH)

EDIT 1-Mar-2015:
Pip теперь связан с Python

Ответ 2

http://www.pip-installer.org/en/latest/installing.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 выполняются дольше, но нет необходимости делать это таким образом.

Ответ 3

Этот ответ исходит от @webology в Twitter:

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

Мои добавленные примечания:

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

Ответ 4

В Ubuntu 12.04 Мне повезло с помощью менеджера пакетов:

sudo apt-get install python-pip virtualenvwrapper

Ответ 5

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

Ответ 6

На самом деле нет ни одного "ответа" на этот вопрос, но есть определенные полезные концепции, которые помогут вам прийти к решению.

Первый вопрос, на который нужно ответить в вашем случае использования, - "Я хочу использовать систему Python?" Если вы хотите использовать Python, распространяемый вместе с вашей операционной системой, то использование метода apt-get install может быть прекрасным. Однако в зависимости от способа распространения операционной системы вам еще нужно задать еще несколько вопросов, например "Хочу ли я установить несколько версий этого пакета?". Если ответ "да", то, вероятно, не стоит использовать что-то вроде 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 также позволяет устанавливать пакеты как многоверсионные, что означает, что нет особого mo dule_name.egg-link. Чтобы импортировать эти пакеты, вам нужно использовать pkg_resources и функцию __import__.

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

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

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

Ответ 7

Так как virtualenvs содержат по умолчанию по умолчанию, я почти никогда не устанавливаю pip глобально. То, что я делаю, больше похоже на:

$ sudo apt-get install python-setuptools
$ curl -O http://python-distribute.org/distribute_setup.py
$ sudo python distribute_setup.py
$ sudo easy_install virtualenv

Затем я перехожу к установке и настройке virtualenvwrapper по своему вкусу, и я ухожу. также может быть полезно взглянуть на Jeremy Avnet virtualenv-burrito:

https://github.com/brainsik/virtualenv-burrito

Ответ 8

@ericholscher говорит в Twitter: "Тот, кто в официальных документах.."

Это отличный момент, вы должны сделать то, что говорят документы.

Цитируется из официальных инструкций по установке ppc на http://www.pip-installer.org/en/latest/installing.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 ...

Ответ 9

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

sudo apt-get install python-virtualenv

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

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

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

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

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

pip install --user something

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

PATH=~/.local/bin:$PATH

в ~/.bashrc.


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

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 не включены.

Ответ 10

Чтобы установить pip на mac (osx), для меня отлично работал следующий лайнер:

sudo easy_install pip

Ответ 12

В 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

Ответ 13

Я использую get-pip и virtualenv-burrito для установки всего этого. Не уверен, что требуется python-setuptools.

# might be optional. I install as part of my standard ubuntu setup script
sudo apt-get -y install python-setuptools

# install pip (using get-pip.py from pip contrib)
curl -O https://raw.github.com/pypa/pip/develop/contrib/get-pip.py && sudo python get-pip.py

# one-line virtualenv and virtualenvwrapper using virtualenv-burrito
curl -s https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | bash

Ответ 15

В Debian лучший способ сделать это будет

sudo apt-get install python-pip

Ответ 16

Первый метод в порядке. Единственная проблема, которую я вижу, это то, что у вас может быть старая версия setuptools (если репозиторий apt не был обновлен.