24 Python libraries สำหรับนักพัฒนา Python ทุกคน

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

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

Apache Libcloud

Libcloud ทำอะไร:เข้าถึงผู้ให้บริการระบบคลาวด์หลายรายผ่าน API เดียวที่สอดคล้องกันและเป็นหนึ่งเดียว

ทำไมต้องใช้ Libcloud:หากคำอธิบายด้านบนของ Apache Libcloud ไม่ทำให้คุณปรบมือด้วยความสุขแสดงว่าคุณยังไม่ได้ลองทำงานกับคลาวด์หลาย ๆ ผู้ให้บริการระบบคลาวด์ทุกคนชอบที่จะทำสิ่งต่างๆในแบบของพวกเขาทำให้กลไกที่เป็นหนึ่งเดียวในการจัดการกับผู้ให้บริการหลายสิบรายเป็นตัวช่วยประหยัดเวลาและปวดหัว API มีให้สำหรับการคำนวณการจัดเก็บการจัดสรรภาระงานและ DNS โดยรองรับ Python 2.x และ Python 3.x รวมถึง PyPy ซึ่งเป็นคอมไพเลอร์ JIT ที่เพิ่มประสิทธิภาพสำหรับ Python

ลูกศร

สิ่งที่ Arrow ทำ: การจัดการวันที่และเวลาใน Python ให้สะอาดยิ่งขึ้น

เหตุใดจึงควรใช้ Arrow: การจัดการกับเขตเวลาการแปลงวันที่รูปแบบวันที่และส่วนที่เหลือทั้งหมดเป็นเรื่องที่น่าปวดหัวไปแล้วครึ่งหนึ่ง ใส่ไลบรารีมาตรฐานของ Python สำหรับงานวันที่ / เวลาและคุณจะปวดหัวสองครึ่ง

Arrow มีข้อดีสี่ประการ One, Arrow เป็นการแทนที่แบบดรอปอินสำหรับโมดูลวันเวลาและเวลาของ Python ซึ่งหมายความว่าฟังก์ชันทั่วไปเรียกใช้เหมือน.now()และ.utcnow()ทำงานตามที่คาดไว้ สอง Arrow มีวิธีการสำหรับความต้องการทั่วไปเช่นการเปลี่ยนและการแปลงโซนเวลา ประการที่สาม Arrow ให้ข้อมูลวันที่ / เวลาแบบ“ มนุษย์” เช่นสามารถบอกว่ามีอะไรเกิดขึ้นเมื่อ“ หนึ่งชั่วโมงที่แล้ว” หรือจะเกิดขึ้น“ ในสองชั่วโมง” โดยไม่ต้องออกแรงมาก ประการที่สี่ Arrow สามารถแปลข้อมูลวันที่ / เวลาได้โดยไม่ต้องเสียเหงื่อ

ดูเถิด

สิ่งที่ต้องทำ:  การสนับสนุนที่แข็งแกร่งสำหรับการดีบักรูปแบบการพิมพ์ใน Python

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

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

ดำ

Black ทำอะไร: จัดรูปแบบรหัส Python ตามชุดกฎที่เข้มงวดและไม่เปลี่ยนรูปเกือบทั้งหมด

เหตุใดจึงต้องใช้ Black:  รูปแบบโค้ด Python เช่น YAPF มีแนวโน้มที่จะมีตัวเลือกที่กำหนดค่าได้มากมายเช่นความยาวบรรทัดตัวเลือกการแบ่งบรรทัดการจัดการลูกน้ำต่อท้ายและอื่น ๆ สีดำใช้ชุดของค่าเริ่มต้นที่สอดคล้องกันสำหรับกฎที่ไม่สามารถเปลี่ยนแปลงได้ โค้ดที่ได้รับการจัดรูปแบบมีความสอดคล้องกันมากที่สุดเท่าที่จะเป็นไปได้ในฐานรหัสและระหว่างผู้ใช้โดยมีความแตกต่างน้อยที่สุดระหว่างไฟล์ที่แก้ไข

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

ขวด

ขวดทำอะไร:เว็บแอปน้ำหนักเบาและรวดเร็ว

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

คลิก

คลิกทำอะไร:  ช่วยให้คุณสร้างอินเทอร์เฟซบรรทัดคำสั่งสำหรับแอพ Python ได้อย่างรวดเร็ว

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

คลิกรวมบิตและชิ้นส่วนเหล่านั้นไว้ใน API การสร้าง CLI ระดับสูง หากคุณต้องการสร้างคำสั่งพื้นฐานเพียงไม่กี่คำคุณสามารถทำได้โดยใช้โค้ดสองสามบรรทัด หากคุณต้องการพฤติกรรมขั้นสูงเพิ่มเติมเช่นการแจ้งแยกต่างหากสำหรับข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์หรือการรับค่าจากตัวแปรสภาพแวดล้อมคุณครอบคลุมคลิก คลิกยังรองรับสีเทอร์มินัลผ่าน  colorama ไลบรารีและสามารถขยายได้ด้วยปลั๊กอินของ บริษัท อื่น

EbookLib

EbookLib ทำอะไร:  อ่านและเขียนไฟล์. epub

เหตุใดจึงต้องใช้ EbookLib: โดยทั่วไปแล้วการสร้าง ebook จะต้องใช้เครื่องมือบรรทัดคำสั่งหนึ่งรายการ EbookLib มีเครื่องมือการจัดการและ API ที่ทำให้กระบวนการง่ายขึ้น ใช้งานได้กับไฟล์ EPUB 2 และ EPUB 3 พร้อมการสนับสนุน Kindle ที่อยู่ระหว่างการพัฒนา

ระบุรูปภาพและข้อความ (หลังในรูปแบบ HTML) และ EbookLib สามารถประกอบชิ้นส่วนเหล่านั้นลงใน ebook พร้อมด้วยบทสารบัญซ้อนรูปภาพมาร์กอัป HTML และอื่น ๆ รองรับข้อมูลหน้าปกกระดูกสันหลังและสไตล์ชีทด้วยเช่นกัน ระบบปลั๊กอินช่วยให้บุคคลภายนอกสามารถขยายพฤติกรรมของไลบรารีได้

หากคุณไม่ต้องการทุกสิ่งที่ EbookLib มีให้ลองใช้ Mkepub Mkepub บรรจุฟังก์ชันการประกอบ ebook พื้นฐานไว้ในไลบรารีที่มีขนาดเพียงไม่กี่กิโลไบต์ ข้อเสียเปรียบเล็กน้อยของ Mkepub คือต้องใช้ Jinja2 ซึ่งจะต้องใช้ไลบรารี MarkupSafe

เหนอะหนะ

Gooey ทำอะไร: ให้โปรแกรม Python บนคอนโซลเป็น GUI แบบแพลตฟอร์ม

เหตุใดจึงต้องใช้ Gooey: การนำเสนอผู้ใช้โดยเฉพาะผู้ใช้อันดับและไฟล์ด้วยอินเทอร์เฟซบรรทัดคำสั่งเป็นวิธีที่ดีที่สุดในการกีดกันการใช้แอปพลิเคชันของคุณ นอกเหนือจากฮาร์ดคอร์เกินบรรยายเช่นการหาทางเลือกที่จะส่งผ่านและลำดับอะไร Gooey รับอาร์กิวเมนต์ที่ต้องการโดยไลบรารี argparse และนำเสนอให้กับผู้ใช้ในรูปแบบ GUI โดยใช้ไลบรารี WxPython ตัวเลือกทั้งหมดมีป้ายกำกับและแสดงด้วยตัวควบคุมที่เหมาะสม (เช่นรายการแบบเลื่อนลงสำหรับอาร์กิวเมนต์แบบหลายตัวเลือก) การเข้ารหัสเพิ่มเติมเพียงเล็กน้อย - การรวมและมัณฑนากรรายเดียวนั้นจำเป็นเพื่อให้ใช้งานได้โดยสมมติว่าคุณใช้ argparse อยู่แล้ว

วิงวอน

สิ่งที่เรียกใช้:การดำเนินการระยะไกล Pythonic - กล่าวคือดำเนินการงานผู้ดูแลระบบโดยใช้ไลบรารี Python

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

Nuitka

สิ่งที่ Nuitka ทำ: รวบรวม Python ลงในไฟล์ปฏิบัติการ C ที่มีอยู่ในตัว

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

Numba

Numba ทำอะไร: เร่งความเร็วฟังก์ชันที่เน้นคณิตศาสตร์

เหตุใดจึงต้องใช้ Numba: โลกของ Python มีแพ็คเกจย่อยทั้งหมดสำหรับการเร่งการดำเนินการทางคณิตศาสตร์ ตัวอย่างเช่น NumPy ทำงานโดยการรวมไลบรารี C ความเร็วสูงไว้ในอินเทอร์เฟซ Python และ Cython รวบรวม Python เป็น C ด้วยการพิมพ์เสริมเพื่อประสิทธิภาพที่เร่ง แต่ Numba นั้นสะดวกที่สุดอย่างง่ายดายเนื่องจากช่วยให้สามารถเร่งฟังก์ชัน Python ได้โดยไม่ต้องใช้อะไรมากไปกว่ามัณฑนากร สำหรับการเพิ่มความเร็วเพิ่มเติมคุณสามารถใช้สำนวน Python ทั่วไปเพื่อปรับปริมาณงานให้ขนานกันหรือใช้คำแนะนำ SIMD หรือ GPU

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

Openpyxl

Openpyxl ทำอะไร:  อ่านเขียนและจัดการไฟล์ Excel

เหตุใดจึงต้องใช้ OpenPyxl:  ขอให้ใครบางคนตั้งชื่อเครื่องมือสามอย่างที่นักต้มตุ๋นใช้ในงานของพวกเขาโอกาสที่คุณจะได้รับ Python, R และ Excel ไม่จำเป็นต้องอยู่ในลำดับนั้น Excel ยังไม่มีการเชื่อมต่อ Python ดั้งเดิม แต่แพ็คเกจของบุคคลที่สามได้เชื่อมช่องว่างด้วยวิธีต่างๆ

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

พี่วี

สิ่งที่ Peewee ทำ:  ORM ขนาดเล็ก (ตัวทำแผนที่เชิงสัมพันธ์เชิงวัตถุ) ที่รองรับ SQLite, MySQL และ PostgreSQL พร้อมส่วนขยายมากมาย

ทำไมต้องใช้ Peewee: ไม่ใช่ทุกคนที่รัก ORM; บางคนอยากจะทิ้งการสร้างแบบจำลองสคีมาไว้ที่ด้านฐานข้อมูลและดำเนินการกับมัน แต่สำหรับนักพัฒนาที่ไม่ต้องการสัมผัสกับฐานข้อมูล ORM ที่สร้างมาอย่างดีและไม่สร้างความรำคาญอาจเป็นสวรรค์ได้ และสำหรับนักพัฒนาที่ไม่ต้องการ ORM เต็มรูปแบบเหมือนกับ SQL Alchemy Peewee ก็เหมาะอย่างยิ่ง

โมเดล Peewee นั้นสร้างเชื่อมต่อและจัดการได้ง่าย นอกจากนี้ยังมีฟังก์ชั่นการจัดการการสืบค้นทั่วไปอีกมากมายเช่นการแบ่งหน้าในตัวคุณลักษณะเพิ่มเติมมีให้ใช้งานเป็นส่วนเสริมรวมถึงส่วนขยายสำหรับฐานข้อมูลอื่น ๆ เครื่องมือทดสอบและระบบการย้ายสคีมาซึ่งเป็นคุณลักษณะที่แม้แต่ผู้เกลียดชัง ORM ก็สามารถเรียนรู้ได้ ความรัก. โปรดทราบว่าสาขา Peewee 3.x (รุ่นที่แนะนำ) ไม่สามารถใช้งานร่วมกับ Peewee เวอร์ชันก่อนหน้าได้อย่างสมบูรณ์

หมอน

หมอนทำอะไร: การประมวลผลภาพโดยไม่ต้องเจ็บปวด

ทำไมต้องใช้ Pillow:  Pythonistas ส่วนใหญ่ที่ประมวลผลภาพควรคุ้นเคยกับ PIL (Python Imaging Library) แต่ PIL เต็มไปด้วยข้อบกพร่องและข้อ จำกัด และได้รับการอัปเดตไม่บ่อยนัก หมอนมีจุดมุ่งหมายเพื่อให้ใช้งานง่ายขึ้นและ  เข้ากันได้กับรหัสกับ PIL ผ่านการเปลี่ยนแปลงเพียงเล็กน้อย มีส่วนขยายสำหรับการพูดคุยกับทั้งฟังก์ชั่นการสร้างภาพดั้งเดิมของ Windows และแพ็คเกจ Tkinter GUI ของ Tcl / Tk ที่สนับสนุนโดย Python หมอนมีให้บริการผ่าน GitHub หรือที่เก็บ PyPI

กวีนิพนธ์

บทกวีทำอะไร:  จัดการการอ้างอิงและบรรจุภัณฑ์สำหรับโครงการ Python ของคุณด้วยวิธีระดับสูง

ทำไมต้องใช้กวีนิพนธ์:  ในทางทฤษฎีคุณไม่ต้องทำอะไรเพื่อเริ่มโครงการ Python ใหม่ยกเว้นสร้างไดเร็กทอรีว่างและเติมไฟล์. py ในทางปฏิบัติโดยเฉพาะอย่างยิ่งสำหรับโปรเจ็กต์ที่มีความทะเยอทะยานคุณจะต้องทำอะไรอีกมากมาย - สร้าง README ตั้งค่าโครงสร้างโฟลเดอร์ประกาศการอ้างอิงของคุณและอื่น ๆ การทำทั้งหมดนี้ด้วยมือเป็นเรื่องน่าปวดหัว

กวีนิพนธ์จะทำการตั้งค่าและบำรุงรักษานี้โดยอัตโนมัติ เรียกใช้poetry new เพื่อสร้างไดเร็กทอรีโปรเจ็กต์ใหม่และสภาพแวดล้อมเสมือนที่เติมไว้ล่วงหน้าด้วยคอมโพเนนต์พื้นฐาน ประกาศการอ้างอิงของคุณโดยใช้รูปแบบไฟล์ pyprojec.toml ของ Python เองและ Poetry จะจัดการให้คุณ ผลิตภัณฑ์ที่มีการจัดการ Poetry ที่มีอยู่สามารถติดตั้งการอ้างอิงรีเฟรชและแก้ไขโดยอัตโนมัติจากบรรทัดคำสั่งของ Poetry กวีนิพนธ์ยังจัดการการเผยแพร่ไปยังที่เก็บระยะไกล (เช่น PyPI)

PyFilesystem

PyFilesystem ทำอะไร:  อินเตอร์เฟส Pythonic กับระบบ ไฟล์ใด ๆ -  ระบบไฟล์ใด ๆ

เหตุใดจึงต้องใช้ PyFilesystem: แนวคิดพื้นฐานที่อยู่เบื้องหลัง PyFilesystem จึงไม่ง่ายไปกว่านี้เช่นเดียวกับที่fileวัตถุของ Python เป็นนามธรรมไฟล์เดียวFSวัตถุของ PyFilesystem จึงเป็นนามธรรมกับระบบไฟล์ทั้งหมด นี่ไม่ได้หมายถึงระบบไฟล์บนดิสก์เท่านั้น PyFilesystem ยังรองรับไดเร็กทอรี FTP, ระบบไฟล์ในหน่วยความจำ, ระบบไฟล์สำหรับตำแหน่งที่กำหนดโดย OS (เช่นไดเร็กทอรีผู้ใช้) และแม้กระทั่งการรวมกันของข้อมูลข้างต้นที่ซ้อนทับกัน

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

Pygame

Pygame ทำอะไร: สร้างวิดีโอเกมหรือส่วนหน้าคุณภาพเกมใน Python