การใช้ pip กับ MacPort สำหรับติดตั้งแพ็คเกจ Python


12

ฉันสามารถติดตั้งแพคเกจหลาม ( ตัวอย่างเช่น , numpy) บน Mac ของฉันทั้งผ่าน Macports:

port install py-numpy

หรือผ่านpip:

pip install numpy

ข้อดี / ข้อเสียทั่วไปของแต่ละวิธีคืออะไร? ควรใช้วิธีการแต่ละวิธีเมื่อใด

  • เมื่อใดที่ฉันควรเลือกหนึ่งรายการมากกว่ารายการอื่น
  • มันสำคัญไหมว่าแพ็คเกจที่ฉันติดตั้งนั้นเล็กหรือใหญ่ (เช่นnumpy)?
  • มันขึ้นอยู่กับเวอร์ชั่นของไพ ธ อนที่ฉันกำลังใช้ ( 2.xกับ3.xหรือของ Apple pythonกับ MacPort python) หรือไม่?
  • เป็นเรื่องสำคัญหรือไม่ว่าฉันมีหลายรุ่นpythonติดตั้งบน Mac ของฉัน
  • สามารถใช้พร้อมกันได้หรือไม่

ฉันหวังว่าจะได้คำตอบที่มีรายชื่อสั้น ๆ เกี่ยวกับข้อดีข้อเสียของแต่ละวิธีพร้อมกับการสนทนาบางเรื่องเกี่ยวกับเวลาที่จะเลือกคำตอบหนึ่ง


มีความเกี่ยวข้อง แต่เฉพาะเจาะจงเกินไป: stackoverflow.com/questions/16895282/… . matplotlibฉันขอให้สำหรับแพคเกจหลามทั่วไปมากกว่าแค่
jvriesem

AFAIK ติดตั้งแล้ว - คุณสามารถเช็คอินเทอร์มินัล:> python และคำสั่งถัดไป> อิมพอร์ต numpy เป็น np และหากไม่มีข้อผิดพลาดคุณก็จะได้ ทางเลือกอื่นคือใช้แอนนาคอนดาจากcontinuum.io/downloads - มีคุณสมบัติมากมายและการติดตั้งเพิ่มเติมด้วย pip จะไปที่โฟลเดอร์แอนะคอนดาของคุณ
Yoan

@Yoan: numpyเป็นเพียงตัวอย่าง ฉันถามเกี่ยวกับการติดตั้งแพคเกจโดยทั่วไป
jvriesem

คำตอบ:


3

พวกเขาสามารถใช้พร้อมกันและไม่ควรมีปัญหาระหว่างการผสมทั้งสอง (กับข้อแม้ใหญ่หนึ่งข้อและ gotcha ... )

The Caveat

ข้อแม้คือว่า macports / homebrew และ pip ​​จะไม่รับรู้ถึงการติดตั้งเทียบ

ตัวอย่างเช่นสมมติว่าคุณติดตั้ง python 3.6 บน Mac ของคุณ คุณต้องการnltkซึ่งไม่มีทางเทคนิคสำหรับรุ่นนั้นใน Macports แต่เป็น pip ดังนั้นคุณติดตั้งบน pip สองเดือนต่อมาคุณเห็นมันติดตั้งบน Macports และเลือกที่จะติดตั้ง ตอนนี้คุณมีสองรุ่นแตกต่างกันของnltkบนเครื่องของคุณดังนั้นข้อแม้ emptor

The Gotcha

หากคุณใช้ pip กับ Macports คุณต้องตรวจสอบให้แน่ใจว่าเป็น pip ที่ติดตั้งผ่าน Macports และเชื่อมโยงกับไพ ธ อนรุ่นนั้น ตัวอย่างเช่นคุณจะเห็น py35-pip, py36-pip เป็นต้น

เมื่อคุณติดตั้ง pip ที่เหมาะสมคุณจะใช้selectคำสั่งของ Macports เพื่อให้แน่ใจว่ามันเปิดใช้งานด้วยไพ ธ อนรุ่นที่เหมาะสม:

sudo port select

ประสบการณ์ของฉันคือการติดตั้งโมดูลไปยังพื้นที่ส่วนกลาง Python ที่สร้างโดย MacPorts ทำให้เกิดข้อขัดแย้ง ไม่ช้าก็เร็ว MacPorts จะพยายามติดตั้งพอร์ตที่คุณได้ติดตั้งไปแล้วโดย pip มันจะออกข้อความแสดงข้อผิดพลาดเกี่ยวกับไฟล์ในพอร์ตนั้นที่มีอยู่ แต่ไม่ได้ติดตั้งโดย MacPorts ฉันคิดว่าคำตอบของ @ IanC ดีกว่า: ติดตั้งในพื้นที่ Python ทั่วโลกโดยใช้ MacPorts เท่านั้นติดตั้งภายในสภาพแวดล้อมเสมือนโดยใช้ pip เท่านั้น
Jim DeLaHunt

4

คุณควรใช้pipเพราะเป็นเครื่องมือที่ใช้ในภาษา Python สำหรับจัดการการติดตั้งแพ็คเกจแต่ไม่ควรติดตั้งสิ่งต่าง ๆ ลงในการติดตั้ง Python พื้นฐานของคุณ อาจเป็นเรื่องยุ่งยากที่จะต้องเรียงลำดับการอ้างอิงรุ่นถาวรระหว่างที่เก็บซอฟต์แวร์หลายแห่งหากคุณติดตั้ง pip ทุกอย่างในการติดตั้ง Python พื้นฐานของคุณบนเครื่องของคุณ

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

สิ่งนี้ช่วยให้คุณสามารถสลับจากการทำงานกับ, พูด, beautifulsoup1.x ในที่เก็บซอฟต์แวร์หนึ่งแห่งเป็นbeautifulsoup2.x ในที่เก็บอื่นโดยไม่ต้องลุยผ่านนรกการจัดการการพึ่งพา


0

ฉันเพิ่งทำการทดสอบแบบรวดเร็วค้นหาแพ็คเกจเดียวกันโดยใช้Homebrew , MacPortsและpip3 :

brew search numpy
sudo port search --name --glob '*numpy'
pip3 search numpy

MacPortsและ pip3มีแพ็กเกจเดิม (รุ่น 1.18.1 ) ในขณะที่ Homebrewมีรุ่น1.16

เมื่อทำงานร่วมกับผู้อื่นดีที่สุดที่จะเห็นด้วยกับวิธีการกำหนดค่าสภาพแวดล้อมการพัฒนาของคุณหรือคุณจะเริ่มชนเข้ากับความผิดปกติและรับผลการทดสอบที่แตกต่างกัน ดังนั้นเครื่องมือที่ดีที่สุดคือสิ่งที่คุณเห็นด้วยกับ ;-)

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