วิธีใช้ pip กับ Python 3.x ข้าง Python 2.x


197

ฉันติดตั้ง Python 3.x (นอกเหนือจาก Python 2.x บน Ubuntu) และเริ่มการจับคู่โมดูลที่ใช้ใน Python 2.x อย่างช้าๆ

ดังนั้นฉันสงสัยว่าฉันควรใช้วิธีใดเพื่อทำให้ชีวิตง่ายขึ้นโดยใช้ pip สำหรับ Python 2.x และ Python 3.x


2
ส่วนตัวฉันจะหลีกเลี่ยงการติดตั้งแพคเกจทั่วโลกและใช้ virtualenv จากนั้นคุณใช้ pip จากภายในสภาพแวดล้อมเสมือนของคุณสำหรับแต่ละโครงการและคุณมักจะใช้ที่ถูกต้อง
jpmc26

คำตอบ:


185

วิธีที่คุณควรทำคือติดตั้งpipสำหรับ Python 3.2

คุณทำสิ่งนี้ด้วยวิธีต่อไปนี้:

$ curl -O https://bootstrap.pypa.io/get-pip.py
$ sudo python3.2 get-pip.py

จากนั้นคุณสามารถติดตั้งสิ่ง Python 3.2 pip-3.2และติดตั้งสิ่งงูใหญ่ 2-7 pip-2.7ด้วย pipคำสั่งจะจบลงที่ชี้ไปยังหนึ่งของเหล่านี้ แต่ผมไม่แน่ใจว่าดังนั้นคุณจะต้องตรวจสอบ


9
นี่เป็นเรื่องง่ายขอบคุณ sudo python3.2 get-pip.pyติดตั้งpipและpip-3.2สคริปต์/usr/local/binทั้งในและนอกระบบใช้ Python 3 sudo python get-pip.pyติดตั้งpipและpip-2.7ที่นี่ดังนั้นในกรณีนี้pipใช้ Python 2.7 ฉันสร้างลิงค์เพิ่มเติมเพื่อpip-3.2เป็นpip3และทดสอบแล้ว: สมบูรณ์แบบ! :)
theta

6
บน Fedora คือ pip3.3 นั่นคือไม่มีการเว้นระหว่าง pip และเวอร์ชัน ตรวจสอบ/usr/binเพื่อดูว่าคุณมี pip เวอร์ชันใด
Shailen

5
[x] Ubuntu ก็ใช้[ pip2 | pip2.7 | pip3 | pip3.4 ]เช่นกัน นี่เป็นการเปลี่ยนแปลงpipหรือแตกต่างระหว่างระบบอื่นหรือไม่?
Jon Surrell

หลังจากดำเนินการฉันได้You're using an outdated location for the get-pip.py script, please use the one available from https://bootstrap.pypa.io/get-pip.py
Kevin Brotcke

ดังนั้นทำเช่นนั้น :-)
Lennart Regebro

53

สิ่งที่คุณสามารถทำได้คือใช้ apt-get:

apt-get install python3-pip

จากประสบการณ์ของฉันมันใช้งานได้คล่องเช่นกันบวกกับคุณจะได้รับประโยชน์ทั้งหมดจากการใช้งานที่ฉลาด


2
ในวันที่ 12.04 ฉันไม่สามารถทำได้
dranxo

15
ฉันใช้มันสำเร็จแล้ว (เช่น sudo apt-get install python3-pip) จากนั้นสามารถติดตั้งแพ็คเกจ python3 ได้โดยใช้ "sudo python3 -m pip แพ็คเกจการติดตั้ง"
Tom Slee

2
ณ วันนี้ฉันเชื่อว่า apt-get ทำให้คุณได้รับเวอร์ชันเก่า 1.5.6; หากคุณไม่ต้องการ AssertionErrror ระหว่างpip freeze > requirements(หรือข้อผิดพลาดที่อาจเกิดขึ้นอื่น ๆ ) ให้ทำการติดตั้งจากแหล่งที่มาสำหรับเวอร์ชั่นล่าสุดและช่วยตัวเองด้วยอาการปวดหัว
Yibo Yang

ต้องเป็น root ในการติดตั้งpython3-pip
Florent

แม้จะมีการติดตั้งการpipใช้งาน แต่python3.7 pipก็ยังคงใช้งานเป็นค่าเริ่มต้นด้วย Python 2.7 บน Ubuntu 14.04 :( ฉันจัดการเพื่ออัปเดต pip เป็นเวอร์ชันล่าสุดเช่น 19.3.1 แต่ยังคงใช้งาน python2.7 เป็นวิธีเริ่มต้นที่จะใช้กับ python 3.7 ?
พัฒนาอยากรู้อยากเห็น

48

ก่อนอื่นให้ติดตั้ง Python 3 pip โดยใช้:

sudo apt-get install python3-pip

จากนั้นให้Python 3 pipใช้:

pip3 install <module-name>

สำหรับการPython 2 pipใช้งาน:

pip install <module-name>

4
ไม่มี Python 2 pip ขึ้นอยู่กับระบบปฏิบัติการที่คุณใช้ ตัวอย่างเช่นใน Arch Linux pip --versionระบุว่าทำงานบนpython 3.6โดยค่าเริ่มต้น
Daniel Andrei Mincă

ที่ดูเหมือนเป็นทางออกที่ง่ายที่สุดและง่ายที่สุดสำหรับฉันขอบคุณ!
gebbissimo

15

หากคุณไม่ต้องการระบุเวอร์ชันทุกครั้งที่คุณใช้pip :

ติดตั้ง pip:

$ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python3

และส่งออกเส้นทาง:

$ export PATH=/Library/Frameworks/Python.framework/Versions/<version number>/bin:$PATH

11
คุณสามารถทำอย่างละเอียด? ฉันไม่เห็นว่าการติดตั้งการแจกจ่ายมีส่วนเกี่ยวข้องอย่างไรกับการไม่ระบุรุ่นของpip ที่คุณต้องการใช้
Piotr Dobrogost

13

วิธีที่สั้นที่สุด:

python3 -m pip install package
python -m pip install package

`` `(test-exif) alex @ alex-xps-13-9370: ~ / projects / oe / app / exif $ python3 -m pip ติดตั้ง exif / usr / bin / python3: ไม่มีโมดูลชื่อ pip '' '
axd

@axd ในกรณีที่ติดตั้งครั้งแรก pip sudo apt-get install python3-pipใช้ สมมติว่าคุณใช้ python3
องค์ประกอบที่ห้า

5

สิ่งนี้ใช้ได้กับฉันใน OS X: (ฉันพูดแบบนี้เพราะบางครั้งเป็นความเจ็บปวดที่ mac มีรุ่น "ของตัวเอง" ของเครื่องมือโอเพนซอร์สทุกตัวและคุณไม่สามารถลบออกได้เพราะ "การปรับปรุง" ทำให้มันเป็นเอกลักษณ์สำหรับสิ่งอื่น ๆ และถ้าคุณลบสิ่งที่เริ่มล้ม appart)

ฉันทำตามขั้นตอนที่ได้รับจาก @Lennart Regebro เพื่อรับ pip สำหรับ python 3 อย่างไรก็ตาม pip สำหรับ python 2 ยังคงอยู่บนเส้นทางก่อนดังนั้น ... สิ่งที่ฉันทำคือการสร้างลิงก์สัญลักษณ์ไปยัง python 3 ภายใน / usr / bin ( ในการกระทำที่ฉันทำเช่นเดียวกันเพื่อให้ 2 pythons ของฉันทำงานอย่างสงบ):

ln -s /Library/Frameworks/Python.framework/Versions/3.4/bin/pip /usr/bin/pip3

โปรดสังเกตว่าฉันได้เพิ่ม3ในตอนท้ายดังนั้นโดยทั่วไปสิ่งที่คุณต้องทำคือใช้pip3แทนpipแทนเพียง

โพสต์เก่า แต่ฉันหวังว่านี่จะช่วยให้ใครซักคนในสักวันหนึ่ง ในทางทฤษฎีควรทำงานกับระบบ LINUX ใด ๆ


4

บน Suse Linux 13.2, pip เรียก python3, แต่ pip2 พร้อมใช้งานเพื่อใช้เวอร์ชันหลามที่เก่ากว่า


เช่นเดียวกันกับ voidlinux
Radagast

4

ใน Windows ให้ติดตั้ง Python 3.7 ก่อนแล้วจึง Python 2.7 จากนั้นใช้พรอมต์คำสั่ง:

pipติดตั้งpython2-module-name

pip3ติดตั้งpython3-module-name

นั่นคือทั้งหมดที่


3

โปรดทราบว่าใน msys2 ฉันพบว่าคำสั่งเหล่านี้มีประโยชน์:

$ pacman -S python3-pip
$ pip3 install --upgrade pip
$ pip3 install --user package_name

2

คิดว่านี่เป็นคำถามเก่าฉันคิดว่าฉันมีทางออกที่ดีกว่า

  1. เพื่อใช้ pip สำหรับสภาพแวดล้อมที่หลาม 2.x ใช้คำสั่งนี้ -

    py -2 -m pip install -r requirements.txt

  2. เพื่อใช้ pip สำหรับสภาพแวดล้อมที่หลาม 3.x ใช้คำสั่งนี้ -

    py -3 -m pip install -r requirements.txt

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.