ตัวเลือกสำหรับการสร้างสภาพแวดล้อมการพัฒนา Python บน M1 Mac (Apple Silicon)

ฉันโหยหา Apple ซิลิคอนและซื้อ M1 Macbook Air แต่มันค่อนข้างน่าเบื่อในฐานะที่เป็นสภาพแวดล้อมการศึกษาและพัฒนาสำหรับการเขียนโปรแกรม Windows หรือ Intel mac อาจดีกว่าฉันไม่คุ้นเคยกับภาษาโปรแกรมอื่น ฉันจึงไม่รู้นี่คือบทสรุปของทางเลือกที่เป็นไปได้และวิธีการสร้างสำหรับ M1 Mac เป็นสภาพแวดล้อมการพัฒนา Python

ตัวเลือกสภาพแวดล้อมการพัฒนา Python บน M1 mac

จากที่ดูอย่างรวดเร็ว สามตัวเลือกต่อไปนี้คือตัวเลือกหลักในปัจจุบัน (กันยายน 2021)

  • ติดตั้งด้วย Homebrew
  • การใช้สภาพแวดล้อม Anaconda (miniforge)
  • ใช้นักเทียบท่า

สาเหตุที่สภาพแวดล้อม M1 Mac ซับซ้อนคือ Apple silicon ใช้สถาปัตยกรรม Arm เป็นสถาปัตยกรรม CPU (การออกแบบระบบคำสั่ง) ซึ่งแตกต่างจากระบบ intel x86 ทั่วไปหากคุณอ่านบทความด้านล่างเกี่ยวกับเรื่องนี้ คุณสามารถเข้าใจภาพได้

เกร็ดความรู้สำหรับวิศวกรไอที สถาปัตยกรรมของ CPU คืออะไร?
อะไรคือความแตกต่างระหว่าง Mac ที่ติดตั้งโปรเซสเซอร์ ARM เวอร์ชัน M1 และเวอร์ชัน Intel

ติดตั้ง Python โดยตรงกับ Homebrew

นี่คือวิธีการติดตั้ง python โดยใช้ตัวจัดการแพ็คเกจ "Homebrew" สำหรับ macOS (หรือ Linux)

·บุญ

เป็นเครื่องมือมาตรฐานโดยพฤตินัยในสภาพแวดล้อม MacOS ดังนั้นจึงง่ายต่อการหยิบใช้

·デメリット

แพ็คเกจ Python บางแพ็คเกจเข้ากันได้กับสถาปัตยกรรม M1 Arm อยู่แล้ว ในขณะที่แพ็คเกจอื่นทำงานบน Rosetta เท่านั้น ดังนั้นจึงจำเป็นต้องตรวจสอบทุกครั้งที่ติดตั้งแพ็คเกจ ดังนั้นจึงต้องระมัดระวังในการใช้งาน

ฉันไม่เคยทำ แต่นี่คือบทสรุปโดยย่อ:

Rosetta 2 เป็นซอฟต์แวร์จำลองที่อนุญาตให้ไบนารี Intel Mac แบบดั้งเดิมทำงานบน Mac M1 ที่ใช้ Arm

Rosetta 2 เผยความลับเบื้องหลังความเร็วของ Apple M1

การใช้สภาพแวดล้อม Anaconda (miniforge)

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

Miniconda สำหรับ m1 mac (รุ่นการกำหนดค่าขั้นต่ำของ Anaconda: Reference เปรียบเทียบอนาคอนด้ากับมินิคอนด้า) เป็นทางแยกของมินิฟอร์จคือการใช้

·บุญ

การสร้างสภาพแวดล้อมเป็นเรื่องง่าย และการจัดการสภาพแวดล้อมเสมือนจริงก็เป็นไปได้เช่นกัน แขนพื้นเมืองและรวดเร็ว
ไม่ต้องกังวลเกี่ยวกับความเข้ากันได้ของ M1 ของแพ็คเกจ python

·デメリット

หากคุณใส่แพ็คเกจที่ไม่ได้อยู่ในที่เก็บ conda (ไม่สามารถติดตั้งด้วย miniforge) ด้วย pypi (pip) การชนกันที่ไม่คาดคิดอาจทำลายสภาพแวดล้อมและจำเป็นต้องติดตั้งใหม่ (อ้างอิง: conda และ pip: อย่าผสมกันจนเป็นอันตราย)

บทความต่อไปนี้ (+ วิดีโอ) มีประโยชน์มาก

มินิฟอร์จคืออะไร?

Miniconda มุ่งเน้นไปที่การรองรับสถาปัตยกรรม CPU ต่างๆ (x86_64 และ ppc64le จาก intel, aarch1 รวมถึง Apple M64)

ใช้นักเทียบท่า

นี่คือวิธีสร้างสภาพแวดล้อมของไพทอนบนคอนเทนเนอร์ Docker

·บุญ

หากคุณสร้างคอนเทนเนอร์สำหรับแต่ละสภาพแวดล้อม คุณไม่ต้องกังวลเกี่ยวกับการชนกัน
ไม่ต้องกังวลเกี่ยวกับความเข้ากันได้ของ M1 ของแพ็คเกจ python

·デメリット

ค่าใช้จ่ายในการเรียนรู้นักเทียบท่ามันช้ากว่าสองอันข้างต้นทั้งนี้ขึ้นอยู่กับการประมวลผล

นี่คือวิธีการ

まとめ

ในความเป็นจริง, "ใช้สภาพแวดล้อม Anaconda (miniforge)" หรือ "ฉันคิดว่ามันจะเป็น "การใช้ Docker"ขั้นแรก ลองใช้ miniforge และหากคุณมีปัญหาใดๆ ให้เริ่มใช้ Dockerโปรดแจ้งให้เราทราบหากมีวิธีที่ดีกว่า

ถ้าคุณเพียงแค่เรียกใช้รหัสGoogle Collaboratoryมีเช่นกัน แต่ฉันละไว้เพราะไม่สามารถกล่าวได้ว่าเป็นการสร้างสภาพแวดล้อม