Làm thế nào để cài đặt pip trong CentOS 7?


110

CentOS 7 EPEL hiện bao gồm Python 3.4: yum install python34

Tuy nhiên, khi tôi thử điều đó, mặc dù Python 3.4 cài đặt thành công, nó dường như không cài đặt pip. Điều này thật kỳ lạ, bởi vì nó pipphải được bao gồm theo mặc định với Python 3.4. which pip3không tìm thấy bất cứ điều gì, và cũng không which pip.

Làm cách nào để truy cập pip từ gói Python 3.4 trong bản phát hành CentOS 7 EPEL?



1
Tôi đã xem qua đó, nhưng không có gì liên quan đáng tiếc.
Jeff Widman

Vì vậy, không có pip34nhị phân? Vâng, bạn sẽ luôn có thể gọi pip qua python -m pipnếu nó được cài đặt. Nếu nó chưa được cài đặt python -m ensurepipcó thể được sử dụng để khởi động nó. Bạn có thể cần quyền nâng cao để gọi lệnh sau.
cel

1
Đúng, không có pip*mã nhị phân nào mà tôi có thể tìm thấy /usr/bin/. Khá chắc chắn rằng tôi đang tìm đúng chỗ vì đó là nơi python3.4pyvenv-3.4vị trí được cài đặt, và chúng không được liên kết tượng trưng với một nơi khác. À, có vẻ như nó chỉ đơn giản là không có trong gói python3.4, điều này hơi khó chịu. Các ensurepipmô-đun không tồn tại cho python3.4một trong hai, vì vậy tôi sẽ có thể chỉ cần sử dụng các hợp đồng mua IUS cho đến khi tàu EPEL python3-piphoặc tương đương.
Jeff Widman

Câu trả lời:


158

Cách dễ nhất mà tôi đã tìm thấy để cài đặt pip3 (dành cho gói python3.x) trên CentOS 7 là:

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

Tất nhiên, bạn sẽ cần phải kích hoạt kho EPEL trước.

Bây giờ bạn có thể chạy các lệnh như sau để cài đặt các gói cho python3.x:

$ pip3 install foo

Tôi nghĩ đây cũng là giải pháp tốt nhất, đồng thời giữ mọi thứ ổn định. Tôi không khuyên bạn nên chỉnh sửa init py
laapsaap

Đồng ý giải pháp tốt nhất làm cho câu trả lời mặc định
Johhny B

7
Trên hệ thống RHEL-7 của tôi, với EPEL thiết lập, tôi đã chỉ thành côngyum install python34-pip
mike

1
Đáng lưu ý rằng đã easy_install-3.4 pipghi đè hệ thống pip. Tôi đã làm một yum reinstall python-pipsau đó để đảm bảo không có vấn đề. Điều này có nghĩa là bạn phải gọi rõ ràng pip3để sử dụng nó, như mong đợi.
miken32

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

Hoặc nếu bạn không có curlvì lý do nào đó:

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

Sau đó, bạn sẽ có thể chạy

$ pip3

1
Tôi gặp lỗi này: zipimport.ZipImportError: không thể giải nén dữ liệu; zlib không khả dụng ... bạn có biết tại sao điều này xảy ra không?
SoldierCorp

Có vẻ như bạn không có zlib-devel hoặc zlib, tùy thuộc vào. Bạn có thể thử cài đặt nó bằng trình quản lý gói của mình không? sudo yum install zlib hoặc sudo apt-get install zlib. Tôi hy vọng rằng sẽ giúp.
DevOops

Tôi cũng gặp phải vấn đề tương tự như @SoldierCorp nhưng khi tôi cố gắng cài đặt zlibnó cho biết Package zlib-1.2.3-29.el6.x86_64 already installed and latest versionbất kỳ ý tưởng nào đang xảy ra?
Mostafiz Rahman

Nếu bạn đang cài đặt trên OS X 10.11, bạn có thể thử chạy các thiết lập xcode một lần nữa: xcode-chọn -install
DevOops

Tôi đang sử dụng centos 6.7
Mostafiz Rahman

16

Gói CentOS 7 yum dành cho python34 không bao gồm ensurepipmô-đun, nhưng vì một số lý do, thiếu các tệp setup và tệp pip nên là một phần của mô-đun đó. Để khắc phục, hãy tải xuống các bánh xe mới nhất từ ​​PyPI vào _bundledthư mục của mô-đun ( /lib64/python3.4/ensurepip/_bundled/):

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

sau đó chỉnh sửa __init__.pyđể phù hợp với các phiên bản đã tải xuống:

_SETUPTOOLS_VERSION = "18.4"
_PIP_VERSION = "7.1.2"

sau đó python3.4 -m ensurepiphoạt động như dự định. Ensurepip được gọi tự động mỗi khi bạn tạo môi trường ảo, ví dụ:

pyvenv-3.4 py3
source py3/bin/activate

Hy vọng rằng RH sẽ sửa được gói Python3.4 yum bị hỏng để không cần vá thủ công.


2
Nhiều đánh giá cao. Đối với những người cần điều này, bánh xe có sẵn tại đây cho setuptools pypi.python.org/simple/setuptools và tại đây cho pip pypi.python.org/simple/pip
yoshiwaan vào

Thật không may, việc chỉnh sửa tệp init .py của ensurepip gây ra lỗi xác minh RPM và cũng sẽ bị ghi đè trên các bản cập nhật gói.
carlwgeorge

2
Tôi thực sự muốn biết lý do chính đáng của họ để gây ra vụ lộn xộn này là gì. Tôi tự nhủ phải có một lý do chính đáng ...
xenithorb

@xenithorb, lý do có thể là gói pip riêng - vì Fedora cũng có python3-pip. Dự án python3 trên EPEL dường như vẫn đang được tiến hành.
maxschlepzig

EPEL (gói bổ sung cho Linux doanh nghiệp) python36hiện đã hoạt động với python3.6 -m ensurepip.
Kevin

9

Cập nhật: Lỗi python34 được đề cập bên dưới cuối cùng đã được sửa. Nó là một sự lựa chọn hoàn toàn tốt bây giờ.

Thay vì sử dụng các gói EPEL python34 bị hỏng , bạn có thể kích hoạt kho IUS và để nó hoạt động bình thường.

  • pip bên trong môi trường ảo

Các gói chính python34upython35uIUS bao gồm công cụ pyvenv ( /usr/bin/pyvenv-3.4hoặc /usr/bin/pyvenv-3.5) bao gồm các bánh xe đi kèm của pip và công cụ thiết lập để khởi động môi trường ảo.

  • pip toàn cầu

Gói python34u-pippython35u-pipIUS bao gồm /usr/bin/pip3.4/usr/bin/pip3.5tương ứng. Chúng hoạt động tốt khi cài đặt các gói vào thư mục gói trang hệ thống.


1
Không chắc tại sao mọi người lại phản đối câu trả lời này. Cảm ơn vì đã quan tâm đến IUS của chúng tôi.
Dave

Về phản đối, sẽ hữu ích nếu giải thích nhận xét "bị hỏng" về lượt cài đặt EPEL. Tôi cũng đã phát hiện ra IUS ngày hôm nay từ một tìm kiếm có liên quan và bất kỳ đề cập nào về điều đó trên câu trả lời ở đây đều đáng được ủng hộ.
Mark Edington

1
@MarkEdington Tôi đã chỉnh sửa câu trả lời để thêm liên kết đến bugzilla.redhat.com/show_bug.cgi?id=1263057 .
carlwgeorge,

1
Vấn đề này đã được cố định với python34-3.4.5-4
DrStrangepork

8
yum install python34-pip

pip3.4 install foo

Bạn có thể sẽ cần cài đặt kho EPEL:

yum install -y epel-release


Gói yum này đến từ repo nào?
Jeff Widman,

1
CentOS 7. *:yum install -y epel-release
Shen Yu

1
Có vẻ như điều này đã được thêm gần đây vào EPEL và có thể sẽ trở thành câu trả lời chính xác. Một khi những người khác xác nhận điều này cũng hiệu quả với họ, thì tôi sẽ coi đây là câu trả lời được chấp nhận.
Jeff Widman

Hoạt động như một cái duyên đối với tôi. :)
Bill Cheng

Câu trả lời này hữu ích khi chạy trên máy chủ VPS
jking

3

Cập nhật 2019

Lúc đầu, tôi đã thử easy_install nhưng nó không cài đặt các gói một cách rõ ràng và trực quan. Ngoài ra khi đến lúc loại bỏ các gói hàng, nó để lại rất nhiều đồ tạo tác cần được dọn dẹp.

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

Là giải pháp phù hợp với tôi, nó cài đặt "pip3" dưới dạng pip trên hệ thống. Nó cũng sử dụng cấu trúc vòng / phút tiêu chuẩn để nó sạch sẽ trong quá trình tháo lắp. Tôi không chắc bạn sẽ cần thực hiện quy trình nào nếu bạn muốn cả trình quản lý gói python2 và python3 trên hệ thống của mình.


1
Đây là cách đúng để thực hiện khi chạy máy chủ VPS, chủ yếu được sử dụng với cPanel
jking 18/02

0

Có một cách dễ dàng để thực hiện việc này bằng cách sử dụng easy_install (Công cụ cài đặt để đóng gói thư viện python).

  • Giả thiết. Trước khi thực hiện việc này, hãy kiểm tra xem bạn đã cài đặt python vào máy Centos của mình chưa (ít nhất là 2.x).

  • Các bước cài đặt pip.

    1. Vì vậy, hãy cài đặt easy_install,

      sudo yum cài đặt python-setuptools python-setuptools-devel

    2. Bây giờ hãy thực hiện pip với easy_install,

      sudo easy_install pip

Thật tuyệt. Bây giờ bạn có pip :)


0

Tìm ra phiên bản python3 bạn đã cài đặt:

yum search pip

và sau đó cài đặt phù hợp nhất. Sử dụng reqoquery để tìm tên của kết quả pip3.eg

repoquery -l python36u-pip

yêu cầu tôi sử dụng pip3.6 thay vì pip3


0

Dưới đây là các bước tôi đã làm để cài đặt python34 và 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

Để cài đặt pip3 bằng curl, tôi đã làmcurl https://bootstrap.pypa.io/get-pip.py | python3
mRyan

-4

Trên CentOS 7, pipphiên bản đang pip3.4và nằm ở đây:

/usr/local/bin/pip3.4

2
Các tệp trong / usr / local / bin không có khả năng được đóng gói bởi RHEL / CentOS. Bạn có thể thực thi thành công "rpm -qf /usr/local/bin/pip3.4" không? Nếu điều này hoạt động, "rpm -qi <packagename>" trên đầu ra ... người đóng gói là ai?
Jeff W
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.