24 perpustakaan Python untuk setiap pembangun Python

Ingin alasan yang baik untuk kejayaan kejayaan bahasa pengaturcaraan Python? Tidak perlu melihat lebih jauh daripada koleksi besar perpustakaan yang tersedia untuk Python, kedua-dua perpustakaan asli dan pihak ketiga. Dengan begitu banyak perpustakaan Python di luar sana, tidak hairanlah ada yang tidak mendapat perhatian yang sewajarnya. Selain itu, pengaturcara yang bekerja secara eksklusif dalam satu domain tidak selalu mengetahui tentang kebaikan yang ada pada mereka untuk jenis pekerjaan lain.

Berikut adalah 24 perpustakaan Python yang mungkin anda terlepas pandang tetapi pasti menarik perhatian anda. Permata ini menjalankan pelbagai kegunaan, mempermudah segala-galanya dari akses sistem fail, pengaturcaraan pangkalan data, dan bekerja dengan perkhidmatan awan hingga membina aplikasi web ringan, membuat GUI, dan bekerja dengan gambar, ebook, dan fail Word — dan banyak lagi selainnya. Ada yang terkenal, yang lain kurang dikenali, tetapi semua perpustakaan Python ini layak mendapat tempat di kotak alat anda.

Apache Libcloud

Apa yang dilakukan oleh Libcloud: Akses berbilang penyedia awan melalui satu API yang konsisten dan bersatu.

Mengapa menggunakan Libcloud: Sekiranya penerangan Apache Libcloud di atas tidak membuat anda bertepuk tangan dengan gembira, maka anda belum mencuba bekerja dengan banyak awan. Penyedia awan semua suka melakukan sesuatu dengan cara mereka, menjadikan mekanisme terpadu untuk menangani puluhan penyedia penghemat waktu dan penenang sakit kepala yang besar. API tersedia untuk komputasi, penyimpanan, pengimbangan beban, dan DNS, dengan sokongan untuk Python 2.x dan Python 3.x serta PyPy, penyusun JIT yang meningkatkan prestasi untuk Python.

Anak panah

Apa yang dilakukan oleh Arrow: Pengendalian tarikh dan masa yang lebih bersih di Python.

Mengapa menggunakan Arrow: Berurusan dengan zon waktu, penukaran tarikh, format tarikh, dan semua yang lain sudah menjadi setengah sakit kepala. Buang ke perpustakaan standard Python untuk kerja tarikh / waktu, dan anda mendapat dua sakit kepala setengah.

Arrow memberikan empat kelebihan besar. Satu, Arrow adalah pengganti drop-down untuk modul datetime Python, yang bermaksud bahawa fungsi biasa memanggil seperti .now()dan .utcnow()berfungsi seperti yang diharapkan. Dua, Arrow menyediakan kaedah untuk keperluan umum seperti beralih dan menukar zon waktu. Ketiga, Arrow memberikan maklumat tarikh / waktu yang "manusiawi" - seperti dapat mengatakan sesuatu yang terjadi "satu jam yang lalu" atau akan terjadi "dalam dua jam" tanpa banyak usaha. Keempat, Arrow dapat melokalkan maklumat tarikh / waktu tanpa berpeluh.

Lihatlah

Apa yang Dilihat:  Sokongan yang kuat untuk debug gaya cetak di Python.

Mengapa menggunakan Lihat:  Terdapat satu cara mudah untuk membuat debug di Python, atau hampir semua bahasa pengaturcaraan dalam hal ini: Masukkan printpenyataan sebaris . Tetapi semasa mencetak-debugging tidak perlu dilakukan dalam program kecil, tidak begitu mudah untuk mendapatkan hasil yang berguna dalam projek multi-modul yang luas dan luas.

Lihat menyediakan alat untuk debugging kontekstual melalui pernyataan cetak. Ini memungkinkan anda memaksakan tampilan yang seragam pada output, menandai hasilnya sehingga dapat disusun melalui carian atau penapis, dan menyediakan konteks di seluruh modul sehingga fungsi yang berasal dari satu modul dapat di-debug dengan benar di modul yang lain. Lihatlah menangani banyak senario khusus Python seperti mencetak kamus dalaman objek, melancarkan atribut bersarang, dan menyimpan dan menggunakan semula hasil untuk perbandingan pada titik lain semasa proses penyahpepijatan.

Hitam

Apa yang dilakukan oleh Black: Memformat kod Python mengikut sekumpulan peraturan yang ketat dan hampir tidak berubah.

Mengapa menggunakan Black:  Pembentuk kod Python, seperti YAPF, cenderung mempunyai banyak pilihan yang boleh dikonfigurasi — panjang garis, pilihan pemisahan garis, pengendalian koma akhir, dan sebagainya. Hitam menerapkan sekumpulan lalai yang konsisten untuk peraturan yang tidak dapat diubah. Kod berformat yang dihasilkan selaras mungkin di seluruh pangkalan kod dan antara pengguna, dengan perbezaan paling sedikit antara fail yang diedit.

Hitam memerlukan beberapa kebiasaan, terutamanya jika anda kurang senang mengenai ruang kosong menegak, pernyataan dengan sarang mendalam (misalnya, senarai dalam senarai), dan pilihan pemformatan lain. Tetapi dalam jangka masa panjang, ini membebaskan anda dari tidak perlu memikirkan pemformatan, membiarkan anda menumpukan perhatian pada kod anda.

Sebotol

Apa yang dilakukan oleh Botol: Aplikasi web yang ringan dan pantas.

Mengapa menggunakan Botol: Apabila anda ingin mengumpulkan API RESTful yang cepat atau menggunakan kerangka web yang kosong untuk membina aplikasi, Botol yang mampu tetapi kecil tidak memberikan apa-apa daripada yang anda perlukan. Perutean, templat, akses ke data permintaan dan respons, sokongan untuk pelbagai jenis pelayan dari CGI lama biasa ke atas, dan sokongan untuk ciri yang lebih maju seperti WebSockets — semuanya ada di sini. Jumlah kerja yang diperlukan untuk memulakan juga minimum, dan reka bentuk Botol dapat diperluas dengan elegan apabila fungsi yang lebih maju diperlukan. 

Klik

Apa yang Klik:  Membolehkan anda dengan cepat membina antara muka baris perintah untuk aplikasi Python.

Mengapa menggunakan Klik:  GUI adalah mudah, tetapi CLI adalah di mana kekuatan sebenarnya. Walau bagaimanapun, membina CLI yang kuat hampir tidak mudah, dan set alat lalai untuk mengumpulkan dan menggunakan pilihan baris perintah di Python adalah primitif.

Klik membungkus potongan-potongan itu dalam API pembinaan CLI peringkat tinggi. Sekiranya anda hanya ingin membuat beberapa arahan asas, anda boleh melakukannya dengan beberapa baris kod. Sekiranya anda menginginkan tingkah laku yang lebih maju, seperti meminta maklumat lebih lanjut mengenai parameter, atau memperoleh nilai dari pemboleh ubah persekitaran, secara berasingan, Klik telah anda lindungi. Klik juga menyokong warna terminal melalui  colorama perpustakaan, dan dapat dikembangkan dengan pemalam pihak ketiga.

EbookLib

Apa yang dilakukan oleh EbookLib:  Baca dan tulis fail .epub .

Mengapa menggunakan EbookLib:  Membuat ebook biasanya memerlukan salah satu alat baris perintah atau yang lain. EbookLib menyediakan alat pengurusan dan API yang memudahkan prosesnya. Ia berfungsi dengan fail EPUB 2 dan EPUB 3, dengan sokongan Kindle dalam pembangunan.

Berikan gambar dan teksnya (yang terakhir dalam format HTML), dan EbookLib dapat mengumpulkan kepingan-kepingan tersebut ke dalam ebook lengkap dengan bab, daftar isi, gambar, markup HTML, dan sebagainya. Data penutup, tulang belakang, dan gaya gaya juga disokong. Sistem pemalam membolehkan pihak ketiga memperluas tingkah laku perpustakaan.

Sekiranya anda tidak memerlukan semua yang ditawarkan EbookLib, cubalah Mkepub. Mkepub membungkus fungsi pemasangan ebook asas di perpustakaan yang berukuran hanya beberapa kilobyte. Satu kelemahan kecil dari Mkepub ialah ia memerlukan Jinja2, yang seterusnya memerlukan perpustakaan MarkupSafe.

Gooey

Apa yang dilakukan oleh Gooey:  Berikan GUI asli platform kepada program Python berasaskan konsol.

Mengapa menggunakan Gooey:  Menyajikan pengguna, terutama pengguna peringkat dan fail, dengan antara muka baris perintah adalah antara kaedah terbaik untuk mencegah penggunaan aplikasi anda. Sedikit dari orang tegar seperti mencari tahu pilihan apa yang harus dilalui dan mengikut urutan apa. Gooey mengambil argumen yang diharapkan oleh perpustakaan argparse dan memberikannya kepada pengguna sebagai bentuk GUI, melalui perpustakaan WxPython. Semua pilihan dilabel dan dipaparkan dengan kawalan yang sesuai (seperti drop-down untuk argumen pelbagai pilihan). Pengekodan tambahan yang sangat sedikit - satu penyertaan dan penghias tunggal - diperlukan untuk membuatnya berfungsi, dengan andaian anda sudah menggunakan argparse.

Memohon

Apa yang dilakukan oleh Invoke: Pelaksanaan jarak jauh Pythonic - iaitu, melaksanakan tugas pentadbir menggunakan perpustakaan Python.

Mengapa menggunakan Invoke: Menggunakan Python sebagai pengganti tugas skrip shell biasa menjadikan dunia masuk akal. Invoke menyediakan API tahap tinggi untuk menjalankan perintah shell dan menguruskan tugas baris perintah seolah-olah itu adalah fungsi Python, yang membolehkan anda memasukkan tugas tersebut dalam kod anda sendiri atau membangunnya dengan elegan. Berhati-hatilah untuk tidak membiarkan input yang tidak dipercaya diteruskan sebagaimana adanya pada perintah shell.

Nuitka

Apa yang dilakukan oleh Nuitka: Susun  Python menjadi C yang boleh dilaksanakan sendiri.

Mengapa menggunakan Nuitka:  Seperti Cython, Nuitka menyusun Python menjadi C. Namun, sedangkan Cython memerlukan sintaks tersendiri untuk hasil terbaik, dan memberi tumpuan terutamanya pada aplikasi matematik dan statistik, Nuitka berfungsi dengan mana-mana program Python sebagaimana adanya, menyusunnya menjadi C, dan menghasilkan satu fail yang dapat dieksekusi, menerapkan pengoptimuman di mana ia dapat berjalan di sepanjang jalan. Nuitka masih dalam peringkat awal, dan banyak pengoptimuman yang dirancang masih belum dapat dicapai. Walaupun begitu, ini adalah kaedah mudah untuk mengubah skrip Python menjadi aplikasi baris perintah yang pantas.

Numba

Apa yang dilakukan Numba:  Mempercepat fungsi intensif matematik secara selektif.

Mengapa menggunakan Numba:  Dunia Python merangkumi keseluruhan subkultur pakej untuk mempercepat operasi matematik. Sebagai contoh, NumPy berfungsi dengan membungkus perpustakaan C berkelajuan tinggi dalam antara muka Python, dan Cython menyusun Python ke C dengan menaip pilihan untuk prestasi dipercepat. Tetapi Numba adalah yang paling mudah, kerana ia membolehkan fungsi Python dipercepat secara selektif dengan tidak lebih dari sekadar penghias. Untuk peningkatan kelajuan lebih lanjut, anda boleh menggunakan simpulan bahasa Python biasa untuk menyelaraskan beban kerja, atau menggunakan arahan SIMD atau GPU.

Perhatikan bahawa anda boleh menggunakan NumPy dengan Numba. Lagipun, NumPy mempunyai banyak algoritma yang tidak perlu dilaksanakan dari awal. Tetapi untuk algoritma "kernel" kecil, Numba dalam banyak kes akan mengatasi NumPy berkali-kali.

Openpyxl

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

Mengapa menggunakan OpenPyxl:  Minta seseorang menamakan tiga alat yang digunakan oleh pengurang nombor dalam pekerjaannya, kemungkinan anda akan mendapat Python, R, dan Excel, tidak semestinya mengikut urutan itu. Excel belum (belum) mempunyai sambungan Python asli, tetapi pakej pihak ketiga telah merapatkan jurang dengan pelbagai cara.

Openpyxl berfungsi dengan mengubahsuai fail Excel   dan bukan dengan memanipulasi Excel secara langsung. Dengan Openpyxl, anda dapat mengautomasikan pembuatan spreadsheet dan buku kerja, menghasilkan formula, mengisi sel dengan formula tersebut, dan melakukan banyak operasi lain. Anda juga boleh mengubah sifat objek Excel, seperti gaya sel dan pemformatan bersyarat. Sesiapa yang menghabiskan banyak masa untuk melihat hamparan akan menemui sesuatu yang berguna di sini.

Peewee

Apa yang dilakukan Peewee:  ORM kecil (mapper objek-relasional) yang menyokong SQLite, MySQL, dan PostgreSQL, dengan banyak peluasan.

Mengapa menggunakan Peewee:  Tidak semua orang menyukai ORM; ada yang lebih suka meninggalkan pemodelan skema di sisi pangkalan data dan selesai dengannya. Tetapi bagi pembangun yang tidak mahu menyentuh pangkalan data, ORM yang dibina dengan baik dan tidak mengganggu boleh menjadi anugerah. Dan bagi pembangun yang tidak mahu ORM sepenuhnya seperti SQL Alchemy, Peewee sangat sesuai.

Model Peewee mudah dibina, disambungkan, dan dimanipulasi. Selain itu, banyak fungsi manipulasi pertanyaan biasa, seperti penomboran, dibina di dalamnya. Lebih banyak ciri tersedia sebagai tambahan termasuk peluasan untuk pangkalan data lain, alat pengujian, dan sistem migrasi skema — satu ciri yang dapat dipelajari oleh penyekat ORM cinta. Perhatikan bahawa cawangan Peewee 3.x (edisi yang disyorkan) tidak serasi sepenuhnya dengan versi Peewee sebelumnya.

Bantal

Apa yang dilakukan oleh Bantal:  Pemprosesan gambar tanpa rasa sakit.

Mengapa menggunakan Bantal:  Sebilangan besar Pythonistas yang telah melakukan pemprosesan gambar semestinya biasa dengan PIL (Python Imaging Library), tetapi PIL penuh dengan kekurangan dan batasan, dan jarang dikemas kini. Bantal bertujuan menjadi lebih mudah digunakan dan  sesuai dengan kod dengan PIL melalui perubahan minimum. Sambungan disertakan untuk bercakap dengan kedua-dua fungsi pencitraan Windows asli dan pakej Tkinter GUI yang disokong Tcl / Tk Python's. Bantal boleh didapati melalui GitHub atau repositori PyPI.

Puisi

Apa yang dilakukan oleh Puisi:  Menguruskan kebergantungan dan pembungkusan untuk projek Python anda dengan cara yang tinggi.

Mengapa menggunakan Puisi:  Secara teori anda tidak perlu melakukan apa-apa untuk memulakan projek Python baru kecuali membuat direktori kosong dan mengisinya dengan fail .py. Dalam praktiknya, terutamanya untuk projek yang bercita-cita tinggi, anda perlu melakukan lebih banyak lagi - buat README, sediakan beberapa struktur folder, nyatakan pergantungan anda, dan sebagainya. Melakukan semua ini dengan tangan adalah sakit kepala.

Puisi mengautomasikan sebahagian besar penyediaan dan penyelenggaraan ini. Jalankan poetry new untuk membuat direktori projek baru dan persekitaran maya, diisi sebelumnya dengan pelbagai komponen asas. Nyatakan kebergantungan anda menggunakan format fail pyprojec.toml milik Python, dan Puisi akan menguruskannya untuk anda. Produk yang diuruskan Puisi yang ada dapat bergantung pada pemasangan, penyegaran dan pengubahsuaian secara automatik dari baris perintah Poetry. Puisi juga menangani penerbitan ke repositori jauh (seperti PyPI).

Sistem PyFiles

Apa yang dilakukan oleh PyFilesystem:  Antaramuka Pythonic ke mana-mana sistem fail -   sistem fail apa pun .

Mengapa menggunakan PyFilesystem:  Idea asas di sebalik PyFilesystem tidak boleh lebih mudah: Sama seperti fileobjek Python yang abstrak satu fail, FSobjek PyFilesystem melengkapkan keseluruhan sistem fail. Ini tidak bermaksud hanya sistem fail dalam cakera. PyFilesystem juga menyokong direktori FTP, sistem fail dalam memori, sistem fail untuk lokasi yang ditentukan oleh OS (seperti direktori pengguna), dan bahkan kombinasi di atas yang saling bertumpu antara satu sama lain.

Selain mempermudah untuk menulis kod lintas platform yang memanipulasi fail, PyFilesystem menghilangkan keperluan untuk menyusun skrip dari bahagian perpustakaan standard yang berbeza, terutamanya  os dan  io. Ia juga menyediakan utiliti yang mungkin perlu dibuat dari awal, seperti alat untuk mencetak paparan pokok yang mesra konsol pada sistem fail.

Piggame

Apa yang dilakukan Pygame:  Buat permainan video, atau bahagian depan berkualiti permainan di Python.