Як встановити pip в CentOS 7?


110

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

Однак, коли я намагаюся це зробити, навіть незважаючи на те, що Python 3.4 встановлюється успішно, піп не встановлено. Що дивно, адже його 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або еквівалент.
Джефф Відман

Відповіді:


158

Найпростіший спосіб встановити pip3 (для пакунків python3.x) на CentOS 7:

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

Звичайно, вам потрібно буде передбачити ввімкнення сховища EPEL.

Тепер ви зможете запускати такі команди, як наступні, для встановлення пакетів для python3.x:

$ pip3 install foo

Я думаю, що це теж найкраще рішення, зберігаючи все здорове. Я не рекомендую редагувати init .py
laapsaap

Найкраще
прийняте

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

1
Я отримав цю помилку: zipimport.ZipImportError: неможливо розпакувати дані; zlib недоступний ... ти знаєш, чому це відбувається?
SoldierCorp

Схоже, у вас немає zlib-devel або zlib, в залежності. Чи можете ви спробувати встановити його разом із менеджером пакунків? sudo yum встановити zlib або sudo apt-get install zlib. Я сподіваюся, що це допомагає.
DevOops

Я також стикаюся з проблемою, як і @SoldierCorp, але коли я намагаюся її встановити, zlibговорить Package zlib-1.2.3-29.el6.x86_64 already installed and latest versionбудь-яка ідея, що відбувається?
Мостафіз Рахман

Якщо ви встановлюєте на OS X 10.11, ви можете спробувати запустити налаштування xcode ще раз: xcode-select
--встановити

Я використовую centos 6.7
Mostafiz Rahman

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 виправить зламаний пакет Python3.4 yum, так що ручне виправлення не потрібно.


2
Цінується. Для тих, хто цього потребує, колеса доступні тут для setuptools pypi.python.org/simple/setuptools і тут для pip pypi.python.org/simple/pip
yoshiwaan

На жаль, редагування init .py-файла securepip викликає збій перевірки RPM, а також буде перезаписано в оновленнях пакета.
carlwgeorge

2
Мені б дуже хотілося дізнатись, у чому їхнє обґрунтування спричинило цей безлад. Я кажу собі, що має бути вагома причина ...
xenithorb

@xenithorb, обґрунтування, ймовірно, полягало в тому, щоб упакувати протокол окремо - оскільки Fedora також є python3-pip. Проект python3 на EPEL, очевидно, все ще працює.
maxschlepzig

EPEL (екстра-пакети для Enterprise Linux) python36тепер працює з python3.6 -m ensurepip.
Кевін

9

Оновлення: помилка python34, згадана нижче, нарешті виправлена. Зараз це абсолютно чудовий вибір.

Замість того, щоб використовувати зламані пакети EPEL python34 , ви можете увімкнути репортаж IUS і припустити його належну роботу.

  • піп у віртуальних середовищах

Основні пакети python34uта python35uпакети IUS включають інструмент 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відповідно. Вони добре спрацьовують, щоб встановити пакети в системний каталог пакунків.


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
жарт

3

Оновлення 2019 року

Я спробував easy_install спочатку, але він не встановлює пакети чисто та інтуїтивно зрозуміло. Крім того, коли настає час вийняти пакети, це залишило багато артефактів, які потрібно було почистити.

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

Це рішення, яке працювало для мене, встановлювало "pip3" як pip у системі. Він також використовує стандартну структуру оборотів в хвилину, щоб очистити її при видаленні. Я не впевнений, який процес ви повинні взяти, якщо ви хочете як менеджер пакунків python2, так і python3 у вашій системі.


1
Це правильний спосіб зробити це під час роботи сервера VPS, в основному використовується з cPanel
jking

0

Існує простий спосіб зробити це просто за допомогою easy_install (A Setuptools to package python library).

  • Припущення. Перш ніж це зробити, перевірте, чи встановлений у вашому пристрої Centos python (принаймні 2.x).

  • Кроки для установки pip.

    1. Тож давайте встановити easy_install,

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

    2. Тепер давайте робити піп з easy_install,

      sudo easy_install pip

Це чудово. Тепер у вас є піп :)


0

З’ясуйте, яку версію python3 ви встановили:

yum search pip

а потім встановити найкращу відповідність. Використовуйте reqoquery, щоб знайти ім'я результуючого pip3.eg

repoquery -l python36u-pip

підказує мені використовувати pip3.6 замість pip3


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

Щоб встановити pip3 за допомогою curl, я зробивcurl https://bootstrap.pypa.io/get-pip.py | python3
mRyan

-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 <ім'я пакета>" на виході ... хто такий пакувач?
Jeff W
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.