2015-09-16 2 views
58

CentOS 7 EPEL теперь включает в Python 3.4: yum install python34Как установить pip в CentOS 7?

Однако, когда я пытаюсь что, хотя Python 3.4 устанавливает успешно, он не появляется, чтобы установить пипс. Что странно, потому что pip должен быть включен по умолчанию с Python 3.4. which pip3 ничего не нашла и не which pip.

Как я могу получить доступ к пипсу из пакета Python 3.4 в выпуске CentOS 7 EPEL?

+2

возможно связано: http://stackoverflow.com/questions/26576086/no-pip-binary-after-installing-python-3-4-2-on-centos-6-5 – cel

+0

Я посмотрел туда, но к сожалению, к сожалению. –

+0

Итак, нет 'pip34' двоичного кода? Ну, вы всегда сможете называть pip через 'python -m pip', если он установлен. Если он не установлен, 'python -m securitypip' можно использовать для его загрузки. Для вызова последней команды вам могут потребоваться повышенные права. – cel

ответ

61

Самый простой способ, который я нашел для установки pip3 (для python3.х пакетов) на CentOS 7 является:

$ sudo yum install python34-setuptools 
$ sudo easy_install-3.4 pip 

Вы должны будете иметь хранилище EPEL включен, прежде чем руки, конечно.

Теперь вы должны быть в состоянии выполнить такие команды, как следующие для установки пакетов для python3.x:

$ pip3 install foo 
+0

Это должен быть принятый ответ. – maxschlepzig

+0

Я думаю, что это тоже лучшее решение, сохраняя при этом все разумное. Я не рекомендую редактировать __init__.py – laapsaap

+0

Согласованное лучшее решение делает это ответом по умолчанию –

36
curl https://bootstrap.pypa.io/get-pip.py | python3.4 

Или, если у вас нет curl по какой-то причине:

wget https://bootstrap.pypa.io/get-pip.py 
python3.4 get-pip.py 

После этого вы должны быть в состоянии запустить

$ pip3 
+1

У меня получилась эта ошибка: zipimport.ZipImportError: невозможно распаковать данные; zlib недоступно ... знаете ли вы, почему это происходит? – SoldierCorp

+0

Похоже, у вас нет zlib-devel или zlib, в зависимости. Можете ли вы попробовать установить его с помощью менеджера пакетов? sudo yum install zlib или sudo apt-get install zlib. Надеюсь, это поможет. – DevOops

+0

Я также сталкиваюсь с проблемой, аналогичной @SoldierCorp, но когда я пытаюсь установить 'zlib', он говорит:« Пакет zlib-1.2.3-29.el6.x86_64 уже установлен и самая последняя версия »любая идея, что происходит? –

15

В ням пакет CentOS 7 для python34 действительно включает ensurepip, но по какой-то причине отсутствуют файлы setuptools и pip, которые должны быть частью этого модуля. Чтобы исправить, загрузите последние колеса из PyPI в модуле _bundled каталога (/lib64/python3.4/ensurepip/_bundled/):

setuptools-18.4-py2.py3-none-any.whl 
pip-7.1.2-py2.py3-none-any.whl 

затем редактировать __init__.py соответствовать загруженным версиям:

_SETUPTOOLS_VERSION = "18.4" 
_PIP_VERSION = "7.1.2" 

, после чего python3.4 -m ensurepip работает как задумано. Ensurepip вызывается автоматически каждый раз, когда вы создаете виртуальную среду, например:

pyvenv-3.4 py3 
source py3/bin/activate 

Надеюсь RH исправит сломанный пакет Python3.4 ням так, что ручное внесение исправлений не требуется.

+2

Очень ценится. Для тех, кому это нужно, колеса доступны здесь для setuptools https://pypi.python.org/simple/setuptools/ и здесь для pip https://pypi.python.org/simple/pip/ – yoshiwaan

+0

К сожалению, редактирование функции обеспечения Файл __init__.py вызывает ошибку проверки RPM, а также будет перезаписана при обновлениях пакетов. – carlwgeorge

+1

Мне было бы очень интересно узнать, что это за причина этого беспорядка. Я говорю себе, что должна быть веская причина ... – xenithorb

-4

На CentOS 7, версия pip является pip3.4 и находится здесь:

/usr/local/bin/pip3.4 
+2

Файлы в/usr/local/bin вряд ли будут упакованы RHEL/CentOS. Можете ли вы успешно выполнить «rpm -qf /usr/local/bin/pip3.4»? Если это работает, «rpm -qi » на выходе ... кто является упаковщиком? –

6

Вместо того чтобы использовать broken EPEL python34 packages, вы можете включить IUS repo и она работает должным образом.

  • пип внутри виртуальных сред

Основные python34u и python35u IUS пакеты включают в себя инструмент pyvenv (/usr/bin/pyvenv-3.4 или /usr/bin/pyvenv-3.5), который включает в комплекте колес пип и Setuptools для самонастройки виртуальных сред.

  • глобальный пип

python34u-pip В и python35u-pip IUS пакеты включают /usr/bin/pip3.4 и /usr/bin/pip3.5 соответственно. Они прекрасно работают, чтобы устанавливать пакеты в каталог system-packages системы.

+1

Не знаете, почему кто-то мог бы ответить на этот вопрос. Спасибо, что привлекли внимание нашего клиента. – Dave

+0

Что касается нисходящего потока, было бы полезно объяснить «сломанный» комментарий к установкам EPEL. Я тоже сегодня обнаружил IUS из соответствующего поиска, и любое упоминание о том, что на ответе здесь заслуживает поддержки. –

+1

@MarkEdington Я отредактировал ответ, чтобы добавить ссылку на https://bugzilla.redhat.com/show_bug.cgi?id=1263057. – carlwgeorge

5
yum install python34-pip 

pip3.4 install foo 

Вы, вероятно, потребуются установленными хранилища Epel:

yum install -y epel-release

+0

Какой репо это пакет yum? –

+1

CentOS 7. *: 'yum install -y epel-release' –

+0

Похоже, что это было недавно добавлено в EPEL и, вероятно, должно стать правильным ответом. Когда другие подтвердят, что это работает и для них, тогда я сделаю это принятым ответом. –

0

Существует простой способ сделать это, просто используя easy_install (A Setuptools для упаковки библиотеки python).

  • Успение. Перед тем, как это сделать, проверьте, установлен ли ваш python в вашей машине Centos (не менее 2.x).

  • Шаги по установке пипса.

    1. Так позволяет сделать установку easy_install,

      sudo yum install python-setuptools python-setuptools-devel

    2. Теперь давайте делать пип с easy_install,

      sudo easy_install pip

Это Великий. Теперь у вас есть pip :)

Смежные вопросы