24 perpustakaan Python untuk setiap pengembang Python

Ingin alasan yang bagus untuk kesuksesan besar bahasa pemrograman Python? Tidak terlihat lagi dari koleksi perpustakaan besar yang tersedia untuk Python, baik perpustakaan asli dan pihak ketiga. Dengan begitu banyak pustaka Python di luar sana, tidak mengherankan jika beberapa tidak mendapatkan semua perhatian yang layak mereka dapatkan. Plus, programmer yang bekerja secara eksklusif di satu domain tidak selalu tahu tentang barang yang tersedia bagi mereka untuk jenis pekerjaan lain.

Berikut adalah 24 pustaka Python yang mungkin telah Anda abaikan tetapi pasti patut Anda perhatikan. Permata ini menjalankan keseluruhan kegunaan, menyederhanakan segalanya mulai dari akses sistem file, pemrograman database, dan bekerja dengan layanan cloud hingga membangun aplikasi web ringan, membuat GUI, dan bekerja dengan gambar, ebook, dan file Word — dan banyak lagi lainnya. Beberapa terkenal, yang lain kurang terkenal, tetapi semua pustaka Python ini layak mendapat tempat di kotak peralatan Anda.

Apache Libcloud

Apa yang dilakukan Libcloud: Mengakses beberapa penyedia cloud melalui satu API yang konsisten dan terpadu.

Mengapa menggunakan Libcloud: Jika deskripsi Apache Libcloud di atas tidak membuat Anda bertepuk tangan karena gembira, maka Anda belum mencoba bekerja dengan banyak cloud. Semua penyedia cloud senang melakukan berbagai hal dengan cara mereka sendiri, membuat mekanisme terpadu untuk menangani lusinan penyedia menjadi penghemat waktu dan pereda sakit kepala yang sangat besar. API tersedia untuk komputasi, penyimpanan, load balancing, dan DNS, dengan dukungan untuk Python 2.x dan Python 3.x serta PyPy, kompiler JIT yang meningkatkan kinerja untuk Python.

Panah

Apa yang dilakukan Arrow: Penanganan tanggal dan waktu yang lebih bersih dengan Python.

Mengapa menggunakan Panah: Berurusan dengan zona waktu, konversi tanggal, format tanggal, dan yang lainnya sudah menjadi sakit kepala setengah. Lemparkan perpustakaan standar Python untuk tanggal / waktu kerja, dan Anda mendapatkan dua sakit kepala setengah.

Panah memberikan empat keuntungan besar. Satu, Arrow adalah pengganti drop-in untuk modul datetime Python, yang berarti bahwa panggilan fungsi umum seperti .now()dan .utcnow()berfungsi seperti yang diharapkan. Kedua, Arrow menyediakan metode untuk kebutuhan umum seperti menggeser dan mengubah zona waktu. Ketiga, Arrow memberikan informasi tanggal / waktu yang "dimanusiakan" —seperti dapat mengatakan sesuatu terjadi "satu jam yang lalu" atau akan terjadi "dalam dua jam" tanpa banyak usaha. Empat, Panah dapat melokalisasi informasi tanggal / waktu tanpa mengeluarkan banyak tenaga.

Melihat

Apa yang dilakukan Behold:  Dukungan yang kuat untuk debugging gaya cetak dengan Python.

Mengapa menggunakan Lihatlah:  Ada satu cara sederhana untuk men-debug dengan Python, atau hampir semua bahasa pemrograman dalam hal ini: Sisipkan printpernyataan sebaris . Namun, meskipun print-debugging tidak perlu dipikirkan lagi dalam program kecil, tidak mudah mendapatkan hasil yang berguna dalam proyek multi-modul yang besar dan luas.

Behold menyediakan toolkit untuk debugging kontekstual melalui pernyataan cetak. Ini memungkinkan Anda untuk menerapkan tampilan seragam pada keluaran, memberi tag pada hasil sehingga dapat diurutkan melalui pencarian atau filter, dan memberikan konteks di seluruh modul sehingga fungsi yang berasal dari satu modul dapat di-debug dengan benar di modul lain. Behold menangani banyak skenario umum khusus Python seperti mencetak kamus internal objek, mengungkap atribut bersarang, dan menyimpan dan menggunakan kembali hasil untuk perbandingan di titik lain selama proses debugging.

Hitam

Apa yang Hitam lakukan: Memformat kode Python sesuai dengan seperangkat aturan yang ketat dan hampir sepenuhnya tidak berubah.

Mengapa menggunakan Hitam:  Pemformat kode Python, seperti YAPF, cenderung memiliki banyak opsi yang dapat dikonfigurasi — panjang baris, opsi pemisahan baris, penanganan tanda koma, dan sebagainya. Hitam menerapkan sekumpulan default yang konsisten untuk aturan yang tidak dapat diubah. Kode berformat yang dihasilkan sekonsisten mungkin di seluruh basis kode dan di antara pengguna, dengan perbedaan sesedikit mungkin antara file yang diedit.

Hitam membutuhkan waktu untuk terbiasa, terutama jika Anda rewel tentang spasi vertikal, pernyataan dengan penumpukan yang dalam (misalnya, daftar dalam daftar), dan opsi pemformatan lainnya. Tetapi dalam jangka panjang, ini membebaskan Anda dari keharusan memikirkan tentang pemformatan, membiarkan Anda berkonsentrasi pada kode Anda.

Botol

Apa yang dilakukan Bottle: Aplikasi web yang ringan dan cepat.

Mengapa menggunakan Bottle: Saat Anda ingin membuat RESTful API cepat atau menggunakan kerangka kerja web untuk membuat aplikasi, Bottle yang kecil dan mampu memberi Anda tidak lebih dari yang Anda butuhkan. Perutean, templat, akses ke data permintaan dan respons, dukungan untuk berbagai jenis server dari CGI lama biasa ke atas, dan dukungan untuk fitur yang lebih canggih seperti WebSockets — semuanya ada di sini. Jumlah pekerjaan yang diperlukan untuk memulai juga minimal, dan desain Bottle dapat diperluas dengan elegan saat fungsi yang lebih canggih diperlukan. 

Klik

Apa yang Klik lakukan:  Memungkinkan Anda dengan cepat membangun antarmuka baris perintah untuk aplikasi Python.

Mengapa menggunakan Click:  GUI nyaman, tetapi CLI adalah tempat kekuatan sebenarnya. Namun, membangun CLI yang kuat tidaklah mudah, dan perangkat default untuk mengumpulkan dan menggunakan opsi baris perintah dengan Python adalah primitif.

Klik membungkus potongan-potongan itu dalam API konstruksi CLI tingkat tinggi. Jika Anda hanya ingin membuat beberapa perintah dasar, Anda dapat melakukannya dengan beberapa baris kode. Jika Anda menginginkan perilaku yang lebih tingkat lanjut, seperti meminta secara terpisah untuk informasi lebih lanjut tentang parameter, atau mendapatkan nilai dari variabel lingkungan, Klik telah Anda bahas. Click juga mendukung warna terminal melalui  colorama pustaka, dan dapat diperluas dengan plug-in pihak ketiga.

EbookLib

Apa yang dilakukan EbookLib:  Membaca dan menulis file .epub.

Mengapa menggunakan EbookLib:  Membuat ebooks biasanya membutuhkan pertengkaran satu alat baris perintah atau lainnya. EbookLib menyediakan alat manajemen dan API yang menyederhanakan proses. Ia bekerja dengan file EPUB 2 dan EPUB 3, dengan dukungan Kindle dalam pengembangan.

Sediakan gambar dan teks (yang terakhir dalam format HTML), dan EbookLib dapat menyusun potongan-potongan itu menjadi sebuah ebook lengkap dengan bab, daftar isi bersarang, gambar, markup HTML, dan sebagainya. Data sampul, punggung buku, dan lembar gaya juga didukung. Sistem plug-in memungkinkan pihak ketiga untuk memperluas perilaku perpustakaan.

Jika Anda tidak membutuhkan semua yang ditawarkan EbookLib, coba Mkepub. Mkepub mengemas fungsionalitas perakitan ebook dasar di perpustakaan yang hanya berukuran beberapa kilobyte. Salah satu kelemahan kecil Mkepub adalah membutuhkan Jinja2, yang pada gilirannya membutuhkan pustaka MarkupSafe.

Lengket

Apa yang dilakukan Gooey:  Berikan program Python berbasis konsol GUI asli platform.

Mengapa menggunakan Gooey:  Menghadirkan pengguna, terutama pengguna peringkat dan file, dengan antarmuka baris perintah adalah salah satu cara terbaik untuk mencegah penggunaan aplikasi Anda. Beberapa orang selain pecandu hardcore suka mencari tahu opsi apa yang akan diterima dan dalam urutan apa. Gooey mengambil argumen yang diharapkan oleh pustaka argparse dan menyajikannya kepada pengguna sebagai bentuk GUI, melalui pustaka WxPython. Semua opsi diberi label dan ditampilkan dengan kontrol yang sesuai (seperti drop-down untuk argumen multi-opsi). Pengodean tambahan yang sangat sedikit — satu penyertaan dan satu penghias — diperlukan untuk membuatnya berfungsi, dengan asumsi Anda sudah menggunakan argparse.

Memohon

Apa yang dilakukan Invoke: Eksekusi jarak jauh Pythonic - yaitu, melakukan tugas admin menggunakan pustaka Python.

Mengapa menggunakan Invoke: Menggunakan Python sebagai pengganti tugas skrip shell umum masuk akal. Invoke menyediakan API tingkat tinggi untuk menjalankan perintah shell dan mengelola tugas baris perintah seolah-olah itu adalah fungsi Python, memungkinkan Anda untuk menyematkan tugas tersebut dalam kode Anda sendiri atau secara elegan membangunnya. Berhati-hatilah untuk tidak mengizinkan input yang tidak tepercaya diteruskan apa adanya ke perintah shell.

Nuitka

Apa yang Nuitka lakukan:  Kompilasi Python ke dalam file executable C mandiri.

Mengapa menggunakan Nuitka:  Seperti Cython, Nuitka mengkompilasi Python menjadi C.Namun, sementara Cython membutuhkan sintaks khusus sendiri untuk hasil terbaik, dan berfokus terutama pada aplikasi matematika dan statistik, Nuitka bekerja dengan program Python apa adanya, mengkompilasinya menjadi C, dan menghasilkan file tunggal yang dapat dieksekusi, menerapkan pengoptimalan selama prosesnya. Nuitka masih dalam tahap awal, dan banyak pengoptimalan yang direncanakan masih akan datang. Namun demikian, ini adalah cara mudah untuk mengubah skrip Python menjadi aplikasi baris perintah yang cepat.

Numba

Apa yang dilakukan Numba: Secara  selektif mempercepat fungsi intensif matematika.

Mengapa menggunakan Numba:  Dunia Python mencakup seluruh subkultur paket untuk mempercepat operasi matematika. Misalnya, NumPy bekerja dengan menggabungkan pustaka C kecepatan tinggi dalam antarmuka Python, dan Cython mengompilasi Python ke C dengan pengetikan opsional untuk kinerja yang dipercepat. Tetapi Numba adalah yang paling nyaman dengan mudah, karena memungkinkan fungsi Python untuk dipercepat secara selektif hanya dengan dekorator. Untuk peningkatan kecepatan lebih lanjut, Anda dapat menggunakan idiom Python umum untuk memparalelkan beban kerja, atau menggunakan instruksi SIMD atau GPU.

Perhatikan bahwa Anda dapat menggunakan NumPy dengan Numba. Bagaimanapun, NumPy memiliki banyak algoritme out-of-the-box yang tidak perlu diterapkan dari awal. Tetapi untuk algoritme "kernel" kecil, Numba dalam banyak kasus akan mengungguli NumPy berkali-kali.

Openpyxl

Apa yang dilakukan Openpyxl:  Membaca, menulis, dan memanipulasi file Excel.

Mengapa menggunakan OpenPyxl:  Minta seseorang untuk menyebutkan tiga alat yang digunakan pengolah angka dalam pekerjaan mereka, kemungkinan besar Anda akan mendapatkan Python, R, dan Excel, tidak harus dalam urutan itu. Excel belum (belum) memiliki konektivitas Python asli, tetapi paket pihak ketiga telah menjembatani kesenjangan tersebut dengan berbagai cara.

Openpyxl bekerja dengan memodifikasi file Excel   daripada dengan memanipulasi Excel secara langsung. Dengan Openpyxl, Anda dapat mengotomatiskan pembuatan spreadsheet dan buku kerja, membuat rumus, mengisi sel dengan rumus tersebut, dan melakukan banyak operasi lainnya. Anda juga bisa mengubah properti objek Excel, seperti gaya sel dan pemformatan bersyarat. Siapa pun yang menghabiskan banyak waktu untuk melihat spreadsheet akan menemukan sesuatu yang berguna di sini.

Orang kecil

Apa yang dilakukan Peewee:  ORM kecil (pemeta relasional objek) yang mendukung SQLite, MySQL, dan PostgreSQL, dengan banyak ekstensi.

Mengapa menggunakan Peewee:  Tidak semua orang menyukai ORM; beberapa lebih suka meninggalkan pemodelan skema di sisi database dan diselesaikan dengannya. Tetapi bagi pengembang yang tidak ingin menyentuh database, ORM yang dibuat dengan baik dan tidak mengganggu bisa menjadi berkah. Dan untuk developer yang tidak menginginkan ORM sehebat SQL Alchemy, Peewee sangat cocok.

Model Peewee mudah dibuat, dihubungkan, dan dimanipulasi. Selain itu, banyak fungsi manipulasi kueri yang umum, seperti pagination, sudah ada di dalamnya. Lebih banyak fitur tersedia sebagai add-on termasuk ekstensi untuk database lain, alat pengujian, dan sistem migrasi skema — fitur yang bahkan dapat dipelajari oleh pembenci ORM cinta. Perhatikan bahwa cabang Peewee 3.x (edisi yang disarankan) tidak sepenuhnya kompatibel dengan versi sebelumnya dari Peewee.

Bantal

Apa yang Bantal lakukan:  Pemrosesan gambar tanpa rasa sakit.

Mengapa menggunakan Pillow:  Kebanyakan Pythonistas yang telah melakukan pemrosesan gambar seharusnya sudah familiar dengan PIL (Python Imaging Library), tetapi PIL penuh dengan kekurangan dan batasan, dan itu jarang diperbarui. Pillow bertujuan agar lebih mudah digunakan dan  kompatibel dengan kode dengan PIL melalui sedikit perubahan. Ekstensi disertakan untuk berbicara dengan fungsi pencitraan Windows asli dan paket Tkinter GUI yang didukung Tcl / Tk dari Python. Bantal tersedia melalui GitHub atau repositori PyPI.

Puisi

Apa yang Puisi lakukan:  Mengelola dependensi dan pengemasan untuk proyek Python Anda dengan cara tingkat tinggi.

Mengapa menggunakan Puisi:  Secara teori Anda tidak perlu melakukan apapun untuk memulai proyek Python baru kecuali membuat direktori kosong dan mengisinya dengan file .py. Dalam praktiknya, terutama untuk proyek yang ambisius, Anda perlu melakukan lebih banyak lagi - membuat README, menyiapkan beberapa struktur folder, mendeklarasikan dependensi Anda, dan sebagainya. Melakukan semua ini dengan tangan memang memusingkan.

Puisi mengotomatiskan sebagian besar penyiapan dan pemeliharaan ini. Jalankan poetry new untuk membuat direktori proyek dan lingkungan virtual baru, yang telah diisi sebelumnya dengan bermacam-macam komponen dasar. Deklarasikan dependensi Anda menggunakan format file pyprojec.toml Python sendiri, dan Poetry akan mengelolanya untuk Anda. Produk terkelola Poetry yang sudah ada dapat membuat dependensinya otomatis diinstal, disegarkan, dan diubah dari baris perintah Poetry. Puisi juga menangani penerbitan ke repositori jarak jauh (seperti PyPI).

PyFilesystem

Apa yang dilakukan PyFilesystem:  Antarmuka Pythonic ke sistem  file apa pun -  sistem file apa pun .

Mengapa menggunakan PyFilesystem:  Ide dasar di balik PyFilesystem tidak bisa lebih sederhana: Sama seperti objek Python filemengabstraksi satu file, objek PyFilesystem FSmengabstraksi seluruh sistem file. Ini tidak berarti hanya sistem file pada disk. PyFilesystem juga mendukung direktori FTP, sistem file dalam memori, sistem file untuk lokasi yang ditentukan oleh OS (seperti direktori pengguna), dan bahkan kombinasi dari yang di atas dilapiskan satu sama lain.

Selain membuatnya lebih mudah untuk menulis kode lintas platform yang memanipulasi file, PyFilesystem meniadakan kebutuhan untuk menggabungkan skrip dari bagian yang berbeda dari pustaka standar, terutama  os dan  io. Ini juga menyediakan utilitas yang mungkin perlu dibuat dari awal, seperti alat untuk mencetak tampilan pohon yang ramah-konsol dari sistem file.

Pygame

Apa yang dilakukan Pygame:  Buat gim video, atau bagian depan berkualitas gim, dengan Python.