จะติดตั้ง pip ใน CentOS 7 ได้อย่างไร?


110

CentOS 7 EPEL มี Python 3.4: yum install python34

อย่างไรก็ตามเมื่อฉันลองใช้แม้ว่า Python 3.4 จะติดตั้งสำเร็จ แต่ก็ไม่ได้ติดตั้ง pip ซึ่งเป็นเรื่องแปลกเพราะpipควรรวมไว้โดยค่าเริ่มต้นด้วย Python 3.4 ไม่พบสิ่งใดหรือไม่which pip3which pip

ฉันจะเข้าถึง pip จากแพ็คเกจ Python 3.4 ในรีลีส CentOS 7 EPEL ได้อย่างไร


3
อาจเกี่ยวข้อง: stackoverflow.com/questions/26576086/…
cel

1
ฉันมองผ่านตรงนั้น แต่ไม่มีอะไรเกี่ยวข้องเลย
Jeff Widman

จึงไม่มีpip34ไบนารี? คุณจะสามารถโทรหา pip ได้ตลอดเวลาpython -m pipหากมีการติดตั้ง หากไม่ได้ติดตั้งpython -m ensurepipสามารถใช้ bootstrap ได้ คุณอาจต้องการสิทธิ์ที่สูงขึ้นเพื่อเรียกใช้คำสั่งหลัง
cel

1
ถูกต้องไม่มีpip*ไบนารีที่ฉันสามารถหา/usr/bin/ได้ ค่อนข้างแน่ใจว่าฉันกำลังมองหาสถานที่ที่ถูกต้องเพราะนั่นคือที่python3.4และpyvenv-3.4ที่ติดตั้งและพวกเขาไม่ได้เชื่อมโยงกับที่อื่น ดูเหมือนว่ามันจะไม่รวมอยู่ในแพ็คเกจ python3.4 ซึ่งน่ารำคาญนิดหน่อย ensurepipโมดูลไม่ได้มีอยู่สำหรับการpython3.4อย่างใดอย่างหนึ่งดังนั้นฉันอาจจะเพียงแค่ใช้ Repos ius จนกว่าเรือ EPEL python3-pipหรือเทียบเท่า
Jeff Widman

1
เห็นได้ชัดว่า python3 พยายาม EPELยังอยู่ในช่วงเริ่มต้น ดูเพิ่มเติมpyvenv3.4 ไม่ทำงานโดยไม่ต้อง pipและpython34 ของ ensurepip เสีย
maxschlepzig

คำตอบ:


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

วิธีแก้ปัญหาที่ดีที่สุดที่ตกลงกันทำให้เป็นคำตอบเริ่มต้น
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

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มีความคิดเกิดอะไรขึ้น?
Mostafiz Rahman

หากคุณกำลังติดตั้งบน OS X 10.11 คุณอาจลองเรียกใช้การตั้งค่า xcode อีกครั้ง: xcode-select
--install

ฉันใช้ 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ทำงานตามที่ตั้งใจไว้ Surepip ถูกเรียกโดยอัตโนมัติทุกครั้งที่คุณสร้างสภาพแวดล้อมเสมือนตัวอย่างเช่น:

pyvenv-3.4 py3
source py3/bin/activate

หวังว่า RH จะแก้ไขแพคเกจยำ 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

ตอนนี้ EPEL (แพ็คเกจเสริมสำหรับลินุกซ์ระดับองค์กร) ใช้python36งานได้กับpython3.6 -m ensurepipไฟล์.
Kevin

9

อัปเดต: ในที่สุดข้อผิดพลาด python34 ที่กล่าวถึงด้านล่างได้รับการแก้ไขแล้ว ตอนนี้เป็นทางเลือกที่ดีอย่างสมบูรณ์แบบ

แทนที่จะใช้แพ็คเกจ EPEL python34 ที่เสียคุณสามารถเปิดใช้งานrepo IUSและทำให้มันทำงานได้อย่างถูกต้อง

  • pip ภายในสภาพแวดล้อมเสมือน

แพ็กเกจหลักpython34uและpython35uIUS รวมถึงเครื่องมือ pyvenv ( /usr/bin/pyvenv-3.4หรือ/usr/bin/pyvenv-3.5) ที่รวมล้อของ pip และ setuptools สำหรับสภาพแวดล้อมเสมือน bootstrapping

  • pip ทั่วโลก

python34u-pipและpython35u-pipแพคเกจ IUS รวม/usr/bin/pip3.4และ/usr/bin/pip3.5ตามลำดับ สิ่งเหล่านี้ใช้ได้ดีในการติดตั้งแพ็กเกจไปยังไดเร็กทอรีไซต์แพ็กเกจระบบ


1
ไม่แน่ใจว่าทำไมทุกคนถึงลงคะแนนคำตอบนี้ ขอขอบคุณที่แจ้งให้เราทราบ IUS
Dave

เกี่ยวกับการโหวตลดคะแนนการอธิบายความคิดเห็นที่ "เสีย" ในการติดตั้ง EPEL จะเป็นประโยชน์ ฉันค้นพบ IUS ในวันนี้จากการค้นหาที่เกี่ยวข้องและการกล่าวถึงคำตอบนั้นสมควรได้รับการโหวตเพิ่ม
Mark Edington

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


แพ็กเกจยำนี้มาจาก repo ใด
Jeff Widman

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

1
ดูเหมือนว่าสิ่งนี้เพิ่งถูกเพิ่มใน EPEL และน่าจะเป็นคำตอบที่ถูกต้อง เมื่อคนอื่นยืนยันว่าสิ่งนี้ใช้ได้ผลเช่นกันฉันจะทำให้สิ่งนี้เป็นคำตอบที่ยอมรับ
Jeff Widman

ใช้งานได้เหมือนมีเสน่ห์สำหรับฉัน :)
บิลเฉิง

คำตอบนี้ช่วยเมื่อทำงานบนเซิร์ฟเวอร์ VPS
Jking

3

อัปเดต 2019

ฉันลองeasy_installในตอนแรก แต่ไม่ได้ติดตั้งแพ็คเกจด้วยวิธีที่สะอาดและใช้งานง่าย นอกจากนี้เมื่อถึงเวลาต้องลบแพ็กเกจก็ยังเหลือสิ่งประดิษฐ์จำนวนมากที่จำเป็นต้องทำความสะอาด

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

เป็นวิธีแก้ปัญหาที่ได้ผลสำหรับฉันโดยติดตั้ง "pip3" เป็น pip ในระบบ นอกจากนี้ยังใช้โครงสร้างรอบต่อนาทีมาตรฐานจึงทำความสะอาดในการถอดออก ฉันไม่แน่ใจว่าคุณต้องใช้กระบวนการใดหากคุณต้องการทั้ง python2 และ python3 package manager ในระบบของคุณ


1
นี่คือวิธีการที่เหมาะสมที่จะทำมันเมื่อใช้เซิร์ฟเวอร์ VPS ส่วนใหญ่ใช้กับ cPanel
Jking

0

มีวิธีง่ายๆในการดำเนินการนี้เพียงแค่ใช้ easy_install (A Setuptools เพื่อทำแพ็คเกจ python librarie)

  • อัสสัมชัญ. ก่อนดำเนินการตรวจสอบว่าคุณได้ติดตั้ง python ลงในเครื่อง Centos ของคุณหรือไม่ (อย่างน้อย 2.x)

  • ขั้นตอนในการติดตั้ง pip

    1. มาทำการติดตั้ง easy_install กัน

      sudo yum ติดตั้ง python-setuptools python-setuptools-devel

    2. ตอนนี้มาทำ pip ด้วย easy_install

      sudo easy_install pip

เยี่ยมมาก ตอนนี้คุณมี 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 <packagename>" บนเอาต์พุต ... ใครเป็นผู้จัดทำแพ็กเกจ
Jeff W
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.