Каков официальный "предпочтительный" способ установки 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
Ответ 11
Сделайте это:
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py
pip install virtualenv
См.
Ответ 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
Ответ 14
https://github.com/pypa/pip/raw/master/contrib/get-pip.py, вероятно, правильный путь.
Ответ 15
В Debian лучший способ сделать это будет
sudo apt-get install python-pip
Ответ 16
Первый метод в порядке. Единственная проблема, которую я вижу, это то, что у вас может быть старая версия setuptools (если репозиторий apt не был обновлен.