Как установить pip в CentOS 7?

110

CentOS 7 EPEL теперь включает Python 3.4: yum install python34

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

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

Джефф Видман
источник
3
возможно связано: stackoverflow.com/questions/26576086/…
чел
1
Я там просмотрел, но, к сожалению, ничего не касается.
Джефф Видман,
Значит, pip34двоичного кода нет ? Что ж, вы всегда сможете вызвать pip через, python -m pipесли он установлен. Если он не установлен, python -m ensurepipего можно использовать для начальной загрузки. Для вызова последней команды вам могут потребоваться повышенные права.
чел
1
Правильно, pip*я не могу найти двоичного файла /usr/bin/. Уверен, я ищу в нужном месте, потому что именно там python3.4и pyvenv-3.4где они установлены, и они не связаны с другими символами. Ну, похоже, он просто не включен в пакет python3.4, что немного раздражает. ensurepipМодуль не существует для python3.4либо, так что я не буду , вероятно , просто использовать операции РЕПО ЮС до Epel судов python3-pipили эквивалент.
Джефф Уидман,
1
По-видимому, разработка EPEL для python3 все еще находится на начальной стадии . См. Также pyvenv3.4 не работает без pip, а гарантия python34 не работает .
maxschlepzig

Ответы:

158

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

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

Конечно, вам нужно будет заранее активировать репозиторий EPEL.

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

$ pip3 install foo
foobrew
источник
Я думаю, что это тоже лучшее решение, но при этом все в здравом уме. Я не рекомендую редактировать init .py
laapsaap
Согласованное лучшее решение - сделать это ответом по умолчанию
johhny B
7
На моей системе RHEL-7, с установленной EPEL, я только что успешно сделалyum install python34-pip
Майк
1
Стоит отметить, что easy_install-3.4 pipперезаписал систему pip. Я сделал yum reinstall python-pipпотом, чтобы не было проблем. Это означает, что вы должны явно вызвать pip3его, как и ожидалось.
miken32
52
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
DevOops
источник
1
Я получил эту ошибку: zipimport.ZipImportError: не удается распаковать данные; zlib недоступен ... вы знаете, почему это происходит?
SoldierCorp
Похоже, у вас нет zlib-devel или zlib, в зависимости. Можете попробовать установить его с помощью диспетчера пакетов? sudo yum install zlib или sudo apt-get install zlib. Надеюсь, это поможет.
DevOops 08
У меня такая же проблема, как и у @SoldierCorp, но когда я пытаюсь установить, zlibон говорит, Package zlib-1.2.3-29.el6.x86_64 already installed and latest versionчто происходит?
Мостафиз Рахман
Если вы выполняете установку в OS X 10.11, вы можете попробовать запустить установку xcode еще раз: xcode-select
--install
Я использую centos 6.7
Мостафиз Рахман
16

Пакет CentOS 7 yum для 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 исправит неисправный пакет yum Python3.4, так что ручное исправление не требуется.

Дэйв
источник
2
Очень признателен. Для тех, кому это нужно, колеса доступны здесь для setuptools pypi.python.org/simple/setuptools и здесь для pip pypi.python.org/simple/pip
yoshiwaan
К сожалению, редактирование файла init .py в файле surepip вызывает сбой проверки RPM, а также перезаписывается при обновлении пакета.
carlwgeorge
2
Я действительно хотел бы знать, каковы, черт побери, их причины для создания этого беспорядка. Я говорю себе, что должна быть веская причина ...
xenithorb
@xenithorb, скорее всего, обоснованием было то, что пакет pip был упакован отдельно, поскольку в Fedora тоже есть python3-pip. По-видимому, работа над python3 в проекте EPEL все еще продолжается.
maxschlepzig 08
EPEL (дополнительные пакеты для корпоративного Linux) python36теперь работает с python3.6 -m ensurepip.
Кевин
9

Обновление: указанная ниже ошибка python34 наконец-то исправлена. Теперь это прекрасный выбор.

Вместо использования сломанных пакетов EPEL python34 вы можете включить репозиторий IUS и заставить его работать правильно.

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

Пакеты main python34uи python35uIUS включают инструмент pyvenv ( /usr/bin/pyvenv-3.4или /usr/bin/pyvenv-3.5), который включает в себя комплектные колеса pip и setuptools для начальной загрузки виртуальных сред.

  • глобальный пункт

python34u-pipИ python35u-pipпакеты IUS включают в себя /usr/bin/pip3.4и /usr/bin/pip3.5соответственно. Они отлично подходят для установки пакетов в системный каталог site-packages.

Carlwgeorge
источник
1
Не уверен, почему кто-то проголосовал против этого ответа. Спасибо, что обратили наше внимание на IUS.
Дэйв
Что касается отрицательного голоса, было бы полезно объяснить «неработающий» комментарий об установках EPEL. Я тоже обнаружил IUS сегодня из связанного поиска, и любое упоминание об этом в ответе здесь заслуживает одобрения.
Марк Эдингтон
1
@MarkEdington Я отредактировал ответ, добавив ссылку на bugzilla.redhat.com/show_bug.cgi?id=1263057 .
carlwgeorge
1
Эта проблема была исправлена ​​с помощью python34-3.4.5-4
DrStrangepork
8
yum install python34-pip

pip3.4 install foo

Вероятно, вам понадобятся установленные репозитории EPEL:

yum install -y epel-release

Шэнь Юй
источник
Из какого репо идет этот пакет yum?
Джефф Видман
1
CentOS 7. *:yum install -y epel-release
Шен Юй
1
Похоже, это было недавно добавлено в EPEL и, вероятно, должно стать правильным ответом. Как только другие подтвердят, что это работает и для них, я сделаю это принятым ответом.
Джефф Видман
Для меня работает как оберег. :)
Билл Ченг
Этот ответ помог при работе на сервере VPS
jking
3

Обновление 2019

Сначала я попробовал easy_install, но он не устанавливает пакеты чистым и интуитивно понятным способом. Кроме того, когда приходит время удалять пакеты, остается много артефактов, которые необходимо очистить.

sudo yum install epel-release
sudo yum install python34-pip
pip install package

Было решение, которое сработало для меня, он устанавливает «pip3» в качестве pip в системе. Он также использует стандартную структуру об / мин, поэтому он чист при его удалении. Я не уверен, какой процесс вам нужно будет предпринять, если вы хотите, чтобы в вашей системе были и диспетчер пакетов python2, и python3.

Aundre
источник
1
Это правильный способ сделать это при запуске VPS-сервера, который в основном используется с cPanel
jking
0

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

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

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

    1. Итак, давайте установим easy_install,

      sudo yum установить python-setuptools python-setuptools-devel

    2. Теперь давайте сделаем pip с помощью easy_install,

      sudo easy_install pip

Замечательно. Теперь у вас есть пип :)

Сундар Гсв
источник
0

Выясните, какая версия python3 у вас установлена:

yum search pip

а затем установите наиболее подходящий вариант. Используйте reqoquery, чтобы найти имя полученного pip3. Например

repoquery -l python36u-pip

говорит мне использовать pip3.6 вместо pip3

gerardw
источник
0

Ниже приведены шаги, которые я выполнил для установки python34 и pip.

yum update -y
yum -y install yum-utils
yum -y groupinstall development
yum -y install https://centos7.iuscommunity.org/ius-release.rpm
yum makecache
yum -y install python34u  python34u-pip
python3.6 -v
echo "alias python=/usr/bin/python3.4" >> ~/.bash_profile
source ~/.bash_profile
pip3 install --upgrade pip

# if yum install python34u-pip doesnt work, try 

curl https://bootstrap.pypa.io/get-pip.py | python
user2412711
источник
Чтобы установить pip3 с помощью curl, я сделалcurl https://bootstrap.pypa.io/get-pip.py | python3
mRyan
-4

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

/usr/local/bin/pip3.4
user1631898
источник
2
Файлы в / usr / local / bin вряд ли будут упакованы RHEL / CentOS. Сможете ли вы успешно выполнить «rpm -qf /usr/local/bin/pip3.4»? Если это сработает, на выходе введите "rpm -qi <packagename>" ... кто упаковщик?
Джефф В.