จะติดตั้ง pip รุ่นล่าสุดได้อย่างไรเมื่อฉันติดตั้ง Ubuntu ไว้แล้ว?


18

ใน Ubuntu 16.04 เมื่อคุณทำ:

pip install --upgrade pip

คุณได้รับ:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

ยุติธรรมพอสมควร ตอนนี้ลอง

pip install --upgrade pip

และคุณจะได้รับ:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

ดังนั้นวิธีการรับ pip 8.1.2 จริง ๆ ?


ไม่sudo -H pip install --upgrade pipทำงานหรือไม่
edwinksl

@edwinksl: มันให้ผลลัพธ์เหมือนกับคำสั่งอื่น ๆ
user2413

ดูเหมือนจะแปลกเพราะมันเหมาะกับฉัน อาจต้องส่งรายงานข้อผิดพลาด
edwinksl

@edwinksl: ขอบคุณ ฉันจะรออีกสองสามวันแล้วทำเช่นนั้น>
user2413

1
@edwinksl เพิ่งเปิดปัญหาในกรณีที่ทุกคนต้องการติดตาม
sethmlarson

คำตอบ:


13

ไม่ใช่ความคิดที่ดีที่จะอัปเดตระบบไพ ธ อนเว้นแต่คุณจะทำงานกับรหัสอูบุนตูและมีเหตุผลเฉพาะ มีการพึ่งพาระบบจำนวนมากที่คุณสามารถทำลายได้ด้วยการอัปเดตด้วย pip แทนที่จะใช้ python libs ในที่เก็บ APT

หากคุณกำลังพัฒนาแอพพลิเคชั่นหลามและจำเป็นต้องเปลี่ยนเวอร์ชันของไลบรารี่คุณควรใช้ตัวเลือก --user เพื่อ pip หรือสร้าง virtualenv เพื่อจัดเก็บ libs เวอร์ชันผู้ใช้ของคุณ

ทั้งสองวิธีเหล่านี้จะกลับไปใช้ lib ระบบอย่างนุ่มนวลหากพวกเขาไม่มีสำเนาของตนเอง virtualenv มีตัวเลือกเพิ่มเติมเกี่ยวกับวิธีควบคุมข้อเสนอแนะนั้น

pip ด้วย --user

นี่เป็นเรื่องง่ายเหมือนกับการเพิ่ม --user ไปยังท้ายคำสั่ง pip ทั้งหมดของคุณซึ่งจะทำให้ python libs ของคุณอยู่ใน ~ / .local / lib / pythonX.X (โดยที่ XX คือหมายเลขเวอร์ชั่นของไพ ธ อน) พวกเขาจะถูกมอง สำหรับที่นี่ก่อนอื่นต้องระมัดระวังในการทำเช่นนี้กับรูทหากคุณต้องทำงานผ่าน sudo เพราะมันอาจส่งผลกระทบต่อระบบหลาม

virtualenv

วิธีนี้ใช้งานได้ในลักษณะเดียวกันกับที่กล่าวมาข้างต้น แต่มีความผูกพันน้อยกว่ากับผู้ใช้ที่เฉพาะเจาะจงดังนั้นจึงไม่มีข้อ จำกัด sudo คุณสามารถโคลน virtualenv และอัปเกรดเพื่อทดสอบการเปลี่ยนแปลงได้ http://docs.python-guide.org/en/latest/dev/virtualenvs/


1
คุณต้องการติดตั้งหลามแบบ alt จริง ๆ ถ้าคุณต้องการ 2.7 ดังนั้นคุณจะไม่เข้าไปยุ่งกับงูหลามระบบปฏิบัติการ จากที่นั่นคุณต้องอัปเดต pip ในการติดตั้ง alt ก่อน venv คุณต้องการ --no-cache-dir เพื่อป้องกันไม่ให้ติดตั้งรุ่นแคช
Wyrmwood

การอัพเดท pip จะไม่ส่งผลเสีย (ในตอนนี้) python 2.7 ซึ่งโดยค่าเริ่มต้นจะถูกจัดส่ง
กระทบ

10

ดูเหมือนว่านี่อาจเป็นปัญหากับการติดตั้งไฟล์. whl สำหรับpip8.1.2 การทำงานรอบในการติดตั้งpip8.1.2 คือการดาวน์โหลดแหล่งที่มาโดยตรงจาก PyPi setup.pyและติดตั้งผ่านทาง

การทำงานต่อไปนี้สำหรับฉัน:

wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar -xzvf pip-8.1.2.tar.gz
cd pip-8.1.2
sudo python setup.py install

หลักสูตรนี้ไม่ได้แก้ปัญหาในการติดตั้ง pip 8.1.2 ผ่านpip install --upgradeแต่ควร squelch เตือนจนกว่าจะแก้ไขปัญหานี้


มีความคิดเห็นเกี่ยวกับเธรดที่แสดงให้เห็นว่าส่วนนี้เกี่ยวข้องกับ ubuntu การแพตช์เวอร์ชั่นของแพ็คเกจเพื่อหยุดการอัพเกรดแพ็คเกจที่ติดตั้งไว้
Amias

5

sudo -H python -m pip install --upgrade pipจะแก้ปัญหาของคุณ ตามที่มีคนกล่าวถึงข้างต้นว่าระบบเฉพาะต้องการ python 2.7 สำหรับบางสิ่ง ... ที่กล่าวมานั้นคุณสามารถอัพเกรด pip ได้โดยไม่ส่งผลเสีย แต่คุณสามารถติดตั้ง 3.5 ได้หากต้องการ

-Hเป็นธงสำหรับsudoการร้องขอที่ว่านโยบายการรักษาความปลอดภัยที่กำหนดตัวแปรสภาพแวดล้อม HOME เพื่อไดเรกทอรีบ้านที่ระบุโดยรายการฐานข้อมูลรหัสผ่านผู้ใช้เป้าหมาย นี่อาจเป็นพฤติกรรมเริ่มต้นทั้งนี้ขึ้นอยู่กับนโยบาย


ถ้ามีคนต้องการ downvote คิดออกมาโพสต์เช่นนี้คุณควรจริงๆบอกว่าทำไมนี้เป็นรูปแบบที่น่าสงสาร
javadba

เพราะพวกเขาโกรธและจำเป็นต้องระบายความโกรธให้ใครซักคน โกรธในสิ่งที่คุณถามชีวิตโดยทั่วไป กองล้นไม่ได้กลายเป็นอะไรนอกจากสถานที่ที่จะมาและถูกคุกคาม
Afflicted

2

ถอนการติดตั้ง pip โดยใช้ apt-get และติดตั้งโดยใช้ easy_install มันใช้งานได้สำหรับฉัน

sudo apt-get remove python-pip
sudo easy_install pip

easy_install ล้มเหลว bash: /usr/bin/pip: No such file or directoryฉันได้รับ และฉันก็ไม่สามารถกำจัด pip ได้เช่นกัน ฉันหวังว่านี่จะไม่ได้หัก pip อย่างสมบูรณ์ในเครื่องของฉัน
Dean Schulze
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.