Pythons 12 ตัวสำหรับทุกความต้องการในการเขียนโปรแกรม

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

นี่คือบทแนะนำสั้น ๆ เกี่ยวกับการแจกแจง Python ตั้งแต่การใช้งานมาตรฐาน (CPython) ไปจนถึงเวอร์ชันที่ปรับให้เหมาะกับความเร็ว (PyPy) สำหรับกรณีการใช้งานพิเศษ (Anaconda, ActivePython) สำหรับเวลาทำงานของภาษาต่างๆ (Jython, IronPython) และแม้กระทั่งสำหรับการตัด - การทดลองขอบ (PyCopy, MesaPy)

CPython

CPython คือการใช้งานอ้างอิงของ Python ซึ่งเป็นเวอร์ชันมาตรฐานที่ทุกชาติของ Python มองหา CPython เขียนด้วยภาษา C ตามนัยของชื่อและสร้างขึ้นโดยกลุ่มคนหลักกลุ่มเดียวกันที่รับผิดชอบการตัดสินใจระดับบนสุดทั้งหมดเกี่ยวกับภาษา Python

CPython ใช้กรณี

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

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

ตัวอย่างเช่นเมื่อใช้ CPython คุณต้องเพิ่มขึ้นเล็กน้อยเพื่อตั้งค่าสภาพแวดล้อมเสมือน Distros อื่น ๆ (โดยเฉพาะอย่างยิ่ง Anaconda) ให้ระบบอัตโนมัติมากขึ้นเกี่ยวกับการตั้งค่าพื้นที่ทำงาน

CPython จำกัด

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

นอกจากนี้ CPython ยังมีชุดเครื่องมือพื้นฐานสำหรับการทำงานกับ Python เท่านั้น ตัวอย่างเช่น pip package manager จะรับและติดตั้งแพ็กเกจจากที่เก็บแพ็กเกจ PyPI ดั้งเดิมของ Python Pip จะติดตั้งไบนารีที่คอมไพล์ไว้แล้วด้วยซ้ำ(ผ่านรูปแบบการกระจายวงล้อ) หากผู้พัฒนาจัดหาให้ แต่จะไม่ติดตั้งการอ้างอิงใด ๆ ที่แพ็คเกจอาจมีอยู่นอก PyPI 

วิดีโอที่เกี่ยวข้อง: Python ช่วยให้การเขียนโปรแกรมง่ายขึ้นได้อย่างไร

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

งูเหลือมอนาคอนด้า

Anaconda ผลิตโดย Anaconda, Inc. (เดิมชื่อ Continuum Analytics) ออกแบบมาสำหรับนักพัฒนา Python ที่ต้องการการจัดจำหน่ายที่ได้รับการสนับสนุนจากผู้ให้บริการเชิงพาณิชย์และมีแผนการสนับสนุนสำหรับองค์กรต่างๆ กรณีการใช้งานหลักสำหรับ Anaconda Python ได้แก่ คณิตศาสตร์สถิติวิศวกรรมการวิเคราะห์ข้อมูลการเรียนรู้ของเครื่องและแอปพลิเคชันที่เกี่ยวข้อง

กรณีการใช้งาน Anaconda Python

Anaconda รวมไลบรารีที่ใช้กันทั่วไปจำนวนมากที่ใช้ในงาน Python เชิงพาณิชย์และทางวิทยาศาสตร์เช่น SciPy, NumPy, Numba และอื่น ๆ และทำให้สามารถเข้าถึงได้อีกมากมายผ่านระบบการจัดการแพ็คเกจที่กำหนดเอง

Anaconda โดดเด่นจากการแจกแจงอื่น ๆ ในการรวมชิ้นส่วนเหล่านี้ทั้งหมด เมื่อติดตั้ง Anaconda จะมีแอปเดสก์ท็อป Anaconda Navigator ซึ่งทำให้ทุกแง่มุมของสภาพแวดล้อม Anaconda พร้อมใช้งานผ่าน GUI ที่สะดวกสบาย การค้นหาส่วนประกอบทำให้ทันสมัยอยู่เสมอและใช้งานร่วมกับ Anaconda ได้ง่ายกว่า CPython

ข้อดีอีกอย่างหนึ่งคือวิธีที่ Anaconda จัดการกับส่วนประกอบจากภายนอกระบบนิเวศของ Python หากจำเป็นสำหรับแพ็คเกจเฉพาะ ตัวcondaจัดการแพ็คเกจที่สร้างขึ้นโดยเฉพาะสำหรับ Anaconda จัดการการติดตั้งทั้งแพ็คเกจ Python และข้อกำหนดซอฟต์แวร์ภายนอกของบุคคลที่สาม

ข้อ จำกัด ของ Anaconda Python

เนื่องจาก Anaconda มีไลบรารีที่มีประโยชน์มากมายและสามารถติดตั้งได้มากขึ้นด้วยการกดแป้นพิมพ์เพียงไม่กี่ครั้งขนาดของการติดตั้ง Anaconda อาจใหญ่กว่า CPython มาก การติดตั้ง CPython พื้นฐานทำงานได้ประมาณ 100MB การติดตั้งอนาคอนดาสามารถขยายขนาดเป็นกิกะไบต์ นี่อาจเป็นปัญหาในสถานการณ์ที่คุณมีข้อ จำกัด ด้านทรัพยากร

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

ActivePython

เช่นเดียวกับ Anaconda ActivePython ถูกสร้างและดูแลโดย บริษัท ที่แสวงหาผลกำไรในกรณีนี้คือ ActiveState ซึ่งทำการตลาดหลายภาษาพร้อมกับ Komodo IDE หลายภาษา

กรณีการใช้งาน ActivePython

ActivePython มุ่งเป้าไปที่ผู้ใช้ระดับองค์กรและนักวิทยาศาสตร์ข้อมูลซึ่งเป็นผู้ที่ต้องการใช้ Python แต่ไม่ต้องการใช้ความพยายามในการประกอบและจัดการการติดตั้ง Python ActivePython ใช้pipตัวจัดการแพ็คเกจปกติของ Python แต่ยังจัดหาไลบรารีทั่วไปสองสามร้อยไลบรารีเป็นแพ็กอินที่ได้รับการยืนยันพร้อมกับไลบรารีทั่วไปบางส่วนที่มีการอ้างอิงของบุคคลที่สามเช่น Intel Math Kernel Library

ข้อ จำกัด ActivePython

มีข้อเสียเปรียบประการหนึ่งสำหรับแนวทางของ ActivePython ในการจัดการแพ็คเกจที่มีการอ้างอิงภายนอก หากคุณต้องการอัปเกรดเป็นโครงการเวอร์ชันใหม่ที่มีการอ้างอิงที่ซับซ้อน (เช่น TensorFlow) คุณจะต้องอัปเกรดการติดตั้ง ActivePython ของคุณด้วย ในสภาพแวดล้อมที่การพัฒนามีแนวโน้มที่จะเชื่อมโยงกับเวอร์ชันเฉพาะของโปรเจ็กต์ปัญหานี้มีน้อยกว่า แต่ในสภาพแวดล้อมที่การพัฒนามีแนวโน้มที่จะติดตามเวอร์ชันล้ำสมัยอาจทำให้เกิดปัญหาได้

PyPy

การแทนที่ดรอปอินสำหรับล่าม CPython PyPy ใช้การคอมไพล์แบบ Just-in-time (JIT) เพื่อเร่งความเร็วในการเรียกใช้โปรแกรม Python ขึ้นอยู่กับงานที่ดำเนินการประสิทธิภาพที่เพิ่มขึ้นอาจเป็นอย่างมาก 

กรณีการใช้งาน PyPy

ข้อร้องเรียนทั่วไปเกี่ยวกับ Python โดยทั่วไปและโดยเฉพาะอย่างยิ่ง CPython คือความเร็ว โดยค่าเริ่มต้น Python จะทำงานช้ากว่า C หลายเท่าบางครั้งช้ากว่าหลายร้อยเท่า PyPy JIT คอมไพล์โค้ด Python เป็นภาษาเครื่องโดยให้ความเร็วสูงกว่า CPython 7.7 เท่าโดยเฉลี่ย งานบางอย่างทำงานได้เร็วขึ้นถึง 50 เท่า 

ส่วนที่ดีที่สุดคือในส่วนของนักพัฒนาต้องใช้ความพยายามเพียงเล็กน้อยหรือไม่ต้องใช้ความพยายามเพื่อปลดล็อกผลกำไร สลับ CPython สำหรับ PyPy และส่วนใหญ่คุณทำเสร็จแล้ว

ข้อ จำกัด ของ PyPy

PyPy ทำงานได้ดีที่สุดเสมอกับแอปพลิเคชัน Python ที่ "บริสุทธิ์" แพ็คเกจ Python ที่เชื่อมต่อกับไลบรารี C เช่น NumPy ไม่ได้รับผลกระทบเช่นกันเนื่องจาก PyPy เลียนแบบอินเทอร์เฟซไบนารีดั้งเดิมของ CPython เมื่อเวลาผ่านไปนักพัฒนาของ PyPy ได้ตัดปัญหานี้ออกไปและทำให้ PyPy เข้ากันได้มากขึ้นกับแพ็คเกจ Python ส่วนใหญ่ที่ขึ้นอยู่กับส่วนขยาย C กล่าวโดยสรุปการสนับสนุนสำหรับส่วนขยาย C ยังมีข้อ จำกัด แต่น้อยกว่าที่เคยเป็นมามาก

ข้อเสียที่เป็นไปได้อีกประการหนึ่งของ PyPy คือขนาดของรันไทม์ รันไทม์ CPython หลักบน Windows ไม่รวมไลบรารีมาตรฐานอยู่ที่ประมาณ 4MB ในขณะที่รันไทม์ PyPy อยู่ที่ประมาณ 32MB โปรดทราบด้วยว่า PyPy เน้นย้ำสาขา 2.x ของ Python มาเป็นเวลานานตัวอย่างเช่นขณะนี้ PyPy สำหรับ Python 3.x มีให้บริการสำหรับ Windows ในเวอร์ชันทดสอบเบต้า 32 บิตเท่านั้น (PyPy มีให้บริการในเวอร์ชัน 64 บิตสำหรับ Python 2.x และ 3.x สำหรับ Linux และ MacOS)

Jython

JVM (Java Virtual Machine) ทำหน้าที่เป็นรันไทม์สำหรับภาษาต่างๆที่ยอดเยี่ยมนอกเหนือจาก Java รายการยาว ได้แก่ Groovy, Scala, Clojure, Kotlin และใช่ Python โดยโครงการ Jython

กรณีการใช้งาน Jython

Jython รวบรวมโค้ด Python 2.x เป็น JVM bytecode และรันโปรแกรมผลลัพธ์บน JVM ในบางกรณีโปรแกรมที่คอมไพล์ Jython จะทำงานได้เร็วกว่าโปรแกรม CPython แต่ก็ไม่เสมอไป

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

ข้อ จำกัด ของ Jython

ข้อเสียเปรียบที่ใหญ่ที่สุดของ Jython คือรองรับเฉพาะสาขา 2.x ของ Python การสนับสนุน Python 3.x อยู่ระหว่างการพัฒนา แต่มีมาระยะหนึ่งแล้ว จนถึงขณะนี้ยังไม่มีการเผยแพร่อะไร

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

IronPython

เช่นเดียวกับ Jython เป็นการใช้งาน Python บน JVM IronPython คือการนำ Python ไปใช้บนรันไทม์. Net หรือ CLR (Common Language Runtime) IronPython ใช้ DLR (Dynamic Language Runtime) ของ CLR เพื่ออนุญาตให้โปรแกรม Python ทำงานด้วยไดนามิกระดับเดียวกับที่ทำใน CPython

กรณีการใช้งาน IronPython

เช่นเดียวกับ Jython IronPython เป็นสะพาน กรณีการใช้งานใหญ่คือความสามารถในการทำงานร่วมกันระหว่าง Python และ. Net universe แอสเซมบลี. Net ที่มีอยู่สามารถโหลดได้ในโปรแกรม IronPython โดยใช้ไวยากรณ์การนำเข้าเนทีฟของ Python และการจัดการอ็อบเจ็กต์ นอกจากนี้ยังสามารถรวบรวมโค้ด IronPython ลงในแอสเซมบลีและเรียกใช้ตามที่เป็นอยู่หรือเรียกใช้จากภาษาอื่น ๆ อย่างไรก็ตามโปรดทราบว่า MSIL (Microsoft Intermediate Language) ในแอสเซมบลีไม่สามารถเข้าถึงได้โดยตรงจากภาษา. Net อื่น ๆ เนื่องจากไม่สอดคล้องกับข้อกำหนดของภาษาทั่วไป

ข้อ จำกัด ของ IronPython

เช่นเดียวกับ Jython ปัจจุบัน IronPython รองรับเฉพาะ Python 2.x. อย่างไรก็ตามงานอยู่ระหว่างการสร้างการใช้งาน IronPython 3.x

WinPython

ตามชื่อที่มีความหมาย WinPython คือการแจกจ่าย Python ที่สร้างขึ้นโดยเฉพาะสำหรับผู้ใช้ Microsoft Windows รุ่นก่อนหน้าของ CPython สำหรับ Windows ไม่ได้รับการออกแบบมาอย่างดีและเป็นเรื่องยากสำหรับผู้ใช้ Windows ที่จะใช้ประโยชน์จากระบบนิเวศ Python อย่างเต็มที่ Windows รุ่นของ CPython ได้รับการปรับปรุงเมื่อเวลาผ่านไป แต่ WinPython ยังคงมีหลายสิ่งที่ไม่พบใน CPython

WinPython ใช้กรณี

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

WinPython ยังรวมแพ็คเกจที่มุ่งเน้นด้านวิทยาศาสตร์ข้อมูลจำนวนมากเช่น NumPy, Pandas, SciPy, Matplotlib เป็นต้นดังนั้นจึงสามารถใช้งานได้ทันทีโดยไม่ต้องมีขั้นตอนการติดตั้งเพิ่มเติม รวมอยู่ด้วยคือคอมไพเลอร์ C / C ++ เนื่องจากเครื่อง Windows จำนวนมากไม่มีเครื่องเดียวและส่วนขยาย Python จำนวนมากต้องการหรือสามารถใช้ประโยชน์ได้

ข้อ จำกัด WinPython

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

Python แบบพกพา

Python Portable คือรันไทม์ CPython ในแพ็คเกจที่มีอยู่ในตัว ได้รับความอนุเคราะห์จากคอลเล็กชัน PortableDevApps ของแอปพลิเคชันที่มีอยู่ในตัวในทำนองเดียวกัน

กรณีการใช้งาน Python Portable

เช่นเดียวกับ WinPython Python Portable มีแพ็คเกจมากมายสำหรับการคำนวณทางวิทยาศาสตร์เช่น Matplotlib, Numba, SymPy, SciPy, Cython และอื่น ๆ เช่นเดียวกับ WinPython Python Portable ทำงานโดยไม่จำเป็นต้องติดตั้งอย่างเป็นทางการบนโฮสต์ Windows มันสามารถอยู่ในไดเร็กทอรีใดก็ได้หรือในไดรฟ์แบบถอดได้ นอกจากนี้ยังมี Spyder IDE และตัวจัดการแพ็คเกจ pip ของ Python ดังนั้นคุณจึงสามารถเพิ่มเปลี่ยนแปลงหรือลบแพ็คเกจได้ตามต้องการ

ข้อ จำกัด Python Portable

ซึ่งแตกต่างจาก WinPython Python Portable ไม่มีคอมไพเลอร์ C / C ++ คุณจะต้องจัดเตรียมคอมไพเลอร์ C เพื่อใช้โค้ดที่เขียนด้วย Cython (และคอมไพล์เป็น C)

การแจกแจง Python แบบทดลอง

การแจกแจงเหล่านี้ทำให้เกิดการเปลี่ยนแปลงที่สำคัญกับ Python ไม่ว่าจะเป็นเพราะพวกเขาใช้ Python เป็นจุดเริ่มต้นสำหรับสิ่งใหม่ทั้งหมดหรือเพราะกำลังทำการเปลี่ยนแปลงเชิงกลยุทธ์กับ Python มาตรฐาน โดยทั่วไปแล้ว Pythons เหล่านี้ยังไม่แนะนำให้ใช้ในการผลิต 

หากคุณอาศัยอยู่กับ Python 2.x codebase สำหรับอนาคตอันใกล้คุณอาจต้องการอ่านบทความของเราเกี่ยวกับการแจกแจง Python แบบทดลองที่ทำให้ Python 2.x มีชีวิตอยู่

MicroPython

MicroPython จัดเตรียมชุดย่อยของภาษา Python ที่สามารถทำงานบนฮาร์ดแวร์ระดับล่างสุดเช่นไมโครคอนโทรลเลอร์ MicroPython ใช้ Python 3.4 โดยมีความแตกต่างบางประการ การเขียนโค้ด MicroPython เป็นเรื่องง่ายหากคุณรู้จัก Python แต่โค้ดที่มีอยู่อาจไม่ทำงานตามที่เป็นอยู่

Pycopy