Bagaimana cara menginstal pip di CentOS 7?

110

CentOS 7 EPEL sekarang menyertakan Python 3.4: yum install python34

Namun, ketika saya mencobanya, meskipun Python 3.4 berhasil diinstal, tampaknya pip tidak diinstal. Aneh, karena pipharus disertakan secara default dengan Python 3.4. which pip3tidak menemukan apa pun, juga tidak which pip.

Bagaimana cara mengakses pip dari paket Python 3.4 pada rilis CentOS 7 EPEL?

Jeff Widman
sumber
1
Saya melihat ke sana, tapi sayangnya tidak ada yang berhubungan.
Jeff Widman
Jadi tidak ada pip34biner? Nah, Anda akan selalu dapat memanggil pip melalui python -m pipjika sudah terpasang. Jika belum terinstal python -m ensurepipbisa digunakan untuk bootstrap nya. Anda mungkin membutuhkan hak yang lebih tinggi untuk memanggil perintah terakhir.
cel
1
Benar, tidak ada pip*biner yang dapat saya temukan /usr/bin/. Cukup yakin saya mencari di tempat yang tepat karena di situlah python3.4dan di pyvenv-3.4mana diinstal, dan mereka tidak terhubung ke tempat lain. Ah, sepertinya itu tidak termasuk dalam paket python3.4 yang agak mengganggu. The ensurepipmodul tidak ada untuk python3.4baik, jadi saya mungkin akan hanya menggunakan repo ius sampai kapal EPEL python3-pipatau setara.
Jeff Widman
1
Rupanya upaya EPEL python3 ini masih dalam tahap awal . Lihat juga pyvenv3.4 tidak berfungsi tanpa pip dan ensurepip python34 rusak .
maxschlepzig

Jawaban:

158

Cara termudah yang saya temukan untuk menginstal pip3 (untuk paket python3.x) di CentOS 7 adalah:

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

Anda harus mengaktifkan repositori EPEL sebelumnya, tentu saja.

Anda sekarang harus dapat menjalankan perintah seperti berikut untuk menginstal paket untuk python3.x:

$ pip3 install foo
foobrew.dll
sumber
Saya pikir ini adalah solusi terbaik juga, sambil menjaga semuanya tetap waras. Saya tidak merekomendasikan pengeditan init .py
laapsaap
Solusi terbaik yang disepakati menjadikan ini sebagai jawaban default
johhny B
7
Pada sistem RHEL-7 saya, dengan penyetelan EPEL, saya berhasil melakukannyayum install python34-pip
mike
1
Perlu dicatat bahwa easy_install-3.4 pipmenimpa sistem pip. Saya melakukan yum reinstall python-pipsetelah itu untuk memastikan tidak ada masalah. Ini berarti Anda harus memanggil secara eksplisit pip3untuk menggunakannya, seperti yang diharapkan.
miken32
52
curl https://bootstrap.pypa.io/get-pip.py | python3.4

Atau jika Anda tidak punya curlkarena alasan tertentu:

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

Setelah ini Anda harus bisa berlari

$ pip3
DevOops
sumber
1
Saya mendapat kesalahan ini: zipimport.ZipImportError: tidak dapat mendekompresi data; zlib tidak tersedia ... apakah Anda tahu mengapa ini terjadi?
SoldierCorp
Sepertinya Anda tidak memiliki zlib-devel atau zlib, tergantung. Bisakah Anda mencoba menginstalnya dengan manajer paket Anda? sudo yum install zlib atau sudo apt-get install zlib. Saya harap itu membantu.
DevOops
Saya juga menghadapi masalah yang sama seperti @SoldierCorp tetapi ketika saya mencoba menginstalnya zlibmengatakan Package zlib-1.2.3-29.el6.x86_64 already installed and latest versionada ide apa yang terjadi?
Mostafiz Rahman
Jika Anda menginstal pada OS X 10.11, Anda dapat mencoba menjalankan pengaturan xcode lagi: xcode-select --install
DevOops
Saya menggunakan centos 6.7
Mostafiz Rahman
16

Paket CentOS 7 yum untuk python34 memang menyertakan ensurepipmodul, tetapi untuk beberapa alasan kehilangan file setuptools dan pip yang seharusnya menjadi bagian dari modul itu. Untuk memperbaikinya, unduh roda terbaru dari PyPI ke _bundleddirektori modul ( /lib64/python3.4/ensurepip/_bundled/):

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

lalu edit __init__.pyagar sesuai dengan versi yang diunduh:

_SETUPTOOLS_VERSION = "18.4"
_PIP_VERSION = "7.1.2"

setelah itu python3.4 -m ensurepipberfungsi sebagaimana mestinya. Ensurepip dipanggil secara otomatis setiap kali Anda membuat lingkungan virtual, misalnya:

pyvenv-3.4 py3
source py3/bin/activate

Mudah-mudahan RH akan memperbaiki paket Python3.4 yum yang rusak sehingga penambalan manual tidak diperlukan.

Dave
sumber
2
Sangat dihargai. Bagi mereka yang membutuhkan roda ini tersedia di sini untuk setuptools pypi.python.org/simple/setuptools dan di sini untuk pip pypi.python.org/simple/pip
yoshiwaan
Sayangnya, pengeditan file init .py ensurepip menyebabkan kegagalan verifikasi RPM, dan juga akan ditimpa pada pembaruan paket.
carlwgeorge
2
Saya benar - benar ingin mengetahui apa alasan mereka menyebabkan kekacauan ini. Aku berkata pada diriku sendiri pasti ada alasan yang bagus ...
xenithorb
@xenithorb, alasannya mungkin adalah mengemas pip secara terpisah - karena Fedora juga memilikinya python3-pip. Proyek python3 pada EPEL tampaknya masih dalam proses.
maxschlepzig
EPEL (paket ekstra untuk linux perusahaan) python36sekarang dapat digunakan python3.6 -m ensurepip.
Kevin
9

Pembaruan: Bug python34 yang disebutkan di bawah ini akhirnya telah diperbaiki. Ini adalah pilihan yang sangat bagus sekarang.

Daripada menggunakan paket EPEL python34 yang rusak , Anda dapat mengaktifkan repo IUS dan membuatnya berfungsi dengan benar.

  • pip di dalam lingkungan virtual

Paket utama python34udan python35uIUS menyertakan alat pyvenv ( /usr/bin/pyvenv-3.4atau /usr/bin/pyvenv-3.5) yang menyertakan roda bundel pip dan alat setup untuk lingkungan virtual bootstrap.

  • pip global

Paket python34u-pipdan python35u-pipIUS termasuk /usr/bin/pip3.4dan /usr/bin/pip3.5masing - masing. Ini berfungsi dengan baik untuk menginstal paket ke direktori paket situs sistem.

carlwgeorge
sumber
1
Tidak yakin mengapa ada orang yang meremehkan jawaban ini. Terima kasih telah menginformasikan IUS kepada kami.
Dave
Mengenai suara negatifnya, akan sangat membantu untuk menjelaskan komentar "rusak" pada pemasangan EPEL. Saya juga menemukan IUS hari ini dari pencarian terkait dan setiap penyebutan jawaban di sini layak mendapat suara positif.
Mark Edington
1
@MarkEdington Saya mengedit jawaban untuk menambahkan tautan ke bugzilla.redhat.com/show_bug.cgi?id=1263057 .
carlwgeorge
1
Masalah ini telah diperbaiki dengan python34-3.4.5-4
DrStrangepork
8
yum install python34-pip

pip3.4 install foo

Anda mungkin perlu memasang repositori EPEL:

yum install -y epel-release

Shen Yu
sumber
Dari repo mana paket yum ini berasal?
Jeff Widman
1
CentOS 7. *:yum install -y epel-release
Shen Yu
1
Kedengarannya seperti ini ditambahkan baru-baru ini ke EPEL, dan kemungkinan besar seharusnya menjadi jawaban yang benar. Setelah orang lain mengonfirmasi bahwa ini juga berfungsi untuk mereka, saya akan menjadikan ini jawaban yang diterima.
Jeff Widman
Bekerja seperti pesona bagi saya. :)
Bill Cheng
Jawaban ini membantu saat berjalan di server VPS
jking
3

Perbarui 2019

Saya mencoba easy_install pada awalnya tetapi tidak menginstal paket dengan cara yang bersih dan intuitif. Juga ketika tiba saatnya untuk menghapus paket itu meninggalkan banyak artefak yang perlu dibersihkan.

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

Apakah solusi yang berhasil untuk saya, ia menginstal "pip3" sebagai pip pada sistem. Ini juga menggunakan struktur rpm standar sehingga bersih dalam pelepasannya. Saya tidak yakin proses apa yang perlu Anda ambil jika Anda menginginkan pengelola paket python2 dan python3 di sistem Anda.

Aundre
sumber
1
Ini adalah cara yang tepat untuk melakukannya saat menjalankan server VPS, sebagian besar digunakan dengan cPanel
jking
0

Ada cara mudah untuk melakukan ini dengan hanya menggunakan easy_install (Setuptools untuk memaketkan python librarie).

  • Anggapan. Sebelum melakukan ini, periksa apakah Anda telah menginstal python ke mesin Centos Anda (setidaknya 2.x).

  • Langkah-langkah untuk menginstal pip.

    1. Jadi mari kita instal easy_install,

      sudo yum install python-setuptools python-setuptools-devel

    2. Sekarang mari lakukan pip dengan easy_install,

      sudo easy_install pip

Itu hebat. Sekarang Anda memiliki pip :)

Sundar Gsv
sumber
0

Cari tahu versi python3 apa yang telah Anda instal:

yum search pip

dan kemudian instal yang paling cocok. Gunakan reqoquery untuk menemukan nama pip3.eg yang dihasilkan

repoquery -l python36u-pip

memberi tahu saya untuk menggunakan pip3.6 daripada pip3

gerardw
sumber
0

Di bawah ini adalah langkah-langkah yang saya ikuti untuk menginstal python34 dan 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
pengguna2412711
sumber
Untuk menginstal pip3 menggunakan curl saya lakukancurl https://bootstrap.pypa.io/get-pip.py | python3
mRyan
-4

Di CentOS 7, pipversinya adalah pip3.4dan terletak di sini:

/usr/local/bin/pip3.4
pengguna1631898
sumber
2
File di / usr / local / bin tidak mungkin dipaketkan oleh RHEL / CentOS. Dapatkah Anda berhasil menjalankan "rpm -qf /usr/local/bin/pip3.4"? Jika ini berhasil, "rpm -qi <packagename>" pada output ... siapa pembuat paketnya?
Jeff W