ความแตกต่างระหว่างการติดตั้ง conda และการติดตั้ง pipการเปรียบเทียบฟังก์ชัน ฯลฯ [Python]
จนถึงขณะนี้ pip install เป็นเพียงสิ่งทดแทนเมื่อไม่สามารถใช้ conda install ได้หากแพ็คเกจที่ฉันต้องการไม่ได้อยู่ในที่เก็บข้อมูลของ Anaconda ฉันจะติดตั้งด้วย pip แต่เมื่อถึงจุดหนึ่งสภาพแวดล้อมก็พังเนื่องจากความขัดแย้งเหล่านี้
สภาพแวดล้อม Anaconda พังเมื่อฉันคิดว่า Jupyter Notebook จะไม่เริ่มทำงาน
เนื่องจากเป็นโอกาสที่ดี ฉันจึงตรวจสอบความแตกต่างระหว่าง pip และ conda ดังนั้นฉันจะทิ้งมันไว้เป็นบันทึกด้านล่าง
ความแตกต่างระหว่าง conda และ pip
คอนด้าคืออะไร
กล่าวโดยย่อคือตัวจัดการแพ็คเกจและระบบการจัดการสภาพแวดล้อมที่มาพร้อมกับ Anaconda/Miniconda
Anaconda เป็นแพลตฟอร์มที่ให้บริการคอลเลกชันของแพ็คเกจสำหรับวิทยาศาสตร์ข้อมูล (คุณรู้อยู่แล้วว่ากำลังมองหาความแตกต่างระหว่าง conda และ pip) คุณสามารถติดตั้งภาษาโปรแกรมสำหรับวิทยาการข้อมูล เช่น Python และ R และแพ็คเกจที่จำเป็นสำหรับการวิเคราะห์ทางสถิติและการเรียนรู้ของเครื่องได้ทั้งหมดในคราวเดียว และสร้างสภาพแวดล้อมสำหรับใช้ Python ได้ทันที
นอกจากนี้ยังมี Miniconda ซึ่งมีการกำหนดค่าเพียงเล็กน้อยเท่านั้น
conda จะทำงานเมื่อติดตั้งโดยโปรแกรมติดตั้ง Anaconda หรือโปรแกรมติดตั้ง miniconda เท่านั้น แม้ว่า conda จะถูกติดตั้งในสภาพแวดล้อม python+pip แต่ก็ไม่สามารถใช้งานได้เหมือนการกระจาย Anaconda
pip คืออะไร
ตัวติดตั้งแพ็คเกจ python มาตรฐานและระบบการจัดการแพ็คเกจที่มาพร้อมกับการติดตั้ง python แท้
ดาวน์โหลดและติดตั้งแพ็คเกจจาก Python Package Index (PyPI) ซึ่งเป็นที่เก็บสำหรับภาษาโปรแกรม Python
ความแตกต่างในแต่ละฟังก์ชัน
ฉันสรุปบทบาทของ conda และ pip ไว้ในตารางง่ายๆ
機能 | คอนด้า | จุดเล็ก ๆ |
---|---|---|
การติดตั้งและจัดการแพ็คเกจ | 可 | 可 |
การสลับเวอร์ชันของ Python | 可 | ไม่ (แทนที่ด้วย pipenv, pyenv) |
การจัดการสภาพแวดล้อมเสมือนจริง | 可 | ไม่ (ใช้แทน pipenv, virtualenv, venv) |
Conda ยังเป็นระบบการจัดการสภาพแวดล้อม ดังนั้นคุณจึงสามารถสร้างสภาพแวดล้อมเสมือนจริง เปลี่ยนเวอร์ชัน Python ของคุณเป็น 3.7 และเปลี่ยนเป็น 2.7
ด้วย pip คุณจะติดตั้งและใช้แพ็คเกจ เช่น pyenv (การควบคุมเวอร์ชัน) และ venv (การจัดการสภาพแวดล้อมเสมือน)
เมื่อเร็ว ๆ นี้ pipenv ออกมาและดูเหมือนว่าจะมีฟังก์ชั่นที่เกือบจะแทนที่ conda
การติดตั้ง conda เทียบกับการติดตั้ง pip
แม้ว่าการติดตั้ง conda และการติดตั้ง pip จะมีคำสั่งที่คล้ายกัน แต่วิธีการติดตั้งแพ็คเกจนั้นแตกต่างกันมาก มีตารางเปรียบเทียบที่เข้าใจง่ายบนเว็บไซต์ anaconda.com ดังนั้นฉันจะอ้างอิง (ภาษาญี่ปุ่นและแก้ไขเพื่อให้ฉันเข้าใจได้ง่ายขึ้น)
ติดตั้งคอนดา | pip ติดตั้ง | |
---|---|---|
รูปแบบแพ็คเกจ | ไบนารี่ | ล้อหรือแหล่งที่มา |
รวบรวม | 不要 | 必要 |
ประเภทแพ็คเกจ | ภาษาอื่นก็ได้เช่นกัน | หลามเท่านั้น |
การจัดการสภาพแวดล้อมเสมือนจริง การจัดการเวอร์ชัน | 可能 | ไม่ (แทนที่ด้วย virtualenv, venv) |
ตรวจสอบการพึ่งพา | あり | ไม่มีเลย |
แหล่งดาวน์โหลดแพ็คเกจ | ที่เก็บอนาคอนด้า, เมฆอนาคอนด้า | พีเพิล |
・conda รองรับภาษาอื่นที่ไม่ใช่ python
Anaconda/Miniconda เป็นข้ามแพลตฟอร์มที่อนุญาตให้คุณติดตั้งภาษาโปรแกรมหลายภาษา เช่น Python, R, Ruby, Java, JavaScript, C/C++, FORTRAN และแพ็คเกจต่างๆ
Conda สามารถติดตั้งแพ็คเกจซอฟต์แวร์ที่เขียนในภาษาต่างๆ บนแพลตฟอร์มข้ามแพลตฟอร์มได้
pip สามารถติดตั้งแพ็คเกจ Python ได้เท่านั้น
・จำเป็นต้องรวบรวมหรือไม่
มากกว่า 1000 แพ็คเกจที่สามารถติดตั้งได้ด้วยคำสั่ง conda จะถูกจัดเก็บไว้ในที่เก็บเฉพาะที่เรียกว่า Anaconda cloud
แพ็คเกจเหล่านี้เป็นไฟล์ไบนารีที่คอมไพล์ไว้ล่วงหน้า คุณจึงสามารถดาวน์โหลดและติดตั้งได้โดยไม่ต้องใช้คอมไพเลอร์
ไฟล์ที่คุณติดตั้งด้วย pip มีไฟล์ต้นฉบับ ดังนั้นคุณจะต้องคอมไพล์ไฟล์เหล่านี้ในฝั่งไคลเอ็นต์
ซึ่งอาจทำให้เกิดปัญหาขึ้นกับสภาพแวดล้อมและถือเป็นสาเหตุหนึ่งที่ทำให้การสร้างสิ่งแวดล้อมสะดุดหลายประการอาจจะ.อาจต้องมีการพึ่งพาภายนอก
・มีหรือไม่มีการตรวจสอบการพึ่งพา
ดูเหมือนว่า pip จะไม่ตอบสนองการขึ้นต่อกันทั้งหมดในเวลาเดียวกันทุกครั้งที่มีการติดตั้งแพ็คเกจในกรณีนี้ ความขัดแย้งจะเกิดขึ้นหากแพ็กเกจที่ติดตั้งมีเวอร์ชันต่างๆ ของแพ็กเกจที่อิงตาม
Conda สนับสนุนสิ่งนี้โดยจัดเตรียมตัวแก้ปัญหา SAT ที่รวบรวมข้อมูลเมตาจากแพ็คเกจทั้งหมดเพื่อค้นหาการพึ่งพาระหว่างการติดตั้ง ระบบจะจับการพึ่งพาที่ซับซ้อนระหว่างแพ็กเกจและการอัปเดตอย่างรวดเร็ว และติดตั้งอย่างเหมาะสม
・ความแตกต่างของความเร็วในการดำเนินการ
นอกจากนี้ยังมีข้อมูลว่าการดำเนินการเมทริกซ์กับ numpy ที่ติดตั้งด้วย conda นั้นเร็วกว่าความแตกต่างดูเหมือนจะมากกว่าสองเท่าทั้งนี้ขึ้นอยู่กับประเภทของการคำนวณ
มีวิธีการใช้งานที่หลากหลายสำหรับ BLAS (โปรแกรมย่อยพีชคณิตเชิงเส้นพื้นฐาน) ซึ่งจริง ๆ แล้วรับผิดชอบการดำเนินการเมทริกซ์ที่เรียกโดย NumPy หนึ่งในนั้นคือ Intel MKL (Math Kernel Library) ที่พัฒนาโดย Intel )ที่จริงแล้ว BLAS ที่เรียกจาก NumPy ที่ติดตั้งโดย Anaconda คือ MKL แต่เมื่อติดตั้ง NumPy ด้วย pip มักจะใช้ BLAS ที่เรียกว่า OpenBLAS ดังนั้นจึงมีความเป็นไปได้ที่จะมีความแตกต่างในประสิทธิภาพที่นี่คือ
ความแตกต่างของความเร็วระหว่าง NumPy ใน Anaconda และ NumPy กับ pip - Orizuru
BLAS เป็นห้องสมุดที่ทำคณิตศาสตร์พื้นฐานและเวกเตอร์ มีมดที่มีชีวิตมากขึ้นในห้องสมุดที่มีจำนวนมากและเริ่มสับสน...
"ความเร็วในการประมวลผลการคำนวณจริงจะเปลี่ยนแปลงไปเท่าใดขึ้นอยู่กับความแตกต่างใน BLAS" และ "วิธีค้นหาว่า BLAS ใดใช้ในสภาพแวดล้อมของคุณ" สรุปรายละเอียดได้ในหน้าต่อไปนี้หากคุณไม่รังเกียจโปรดอ้างอิง
ดูเหมือนว่าความเร็วในการคำนวณจะเปลี่ยนไปขึ้นอยู่กับ BLAS ที่ใช้ใน Numpy [Python]
นั่นคือความแตกต่างระหว่าง conda และ pip
การอ้างอิง
ทำความเข้าใจกับ Conda และ Pip
https://conda.io/en/latest/
เปรียบเทียบความเร็วของ NumPy ของ Anaconda และ NumPy ของ PyPI
หยุดการติดตั้ง Tensorflow โดยใช้ pip เพื่อประสิทธิภาพ!
ดิสโก้
รายการความคิดเห็น
ยังไม่มีความเห็น