Her Python geliştiricisi için 24 Python kitaplığı

Python programlama dilinin müthiş başarısı için iyi bir neden mi istiyorsunuz? Hem yerel hem de üçüncü taraf kitaplıklar olan Python için mevcut olan devasa kitaplık koleksiyonundan başka bir yere bakmayın. Pek çok Python kitaplığı varken, bazılarının hak ettikleri kadar ilgiyi görmemesi şaşırtıcı değil. Ayrıca, yalnızca bir alanda çalışan programcılar, diğer iş türleri için kendilerine sunulan güzellikleri her zaman bilmezler.

İşte gözden kaçırmış olabileceğiniz ama kesinlikle dikkatinizi çekmeye değer 24 Python kitaplığı. Bu mücevherler, dosya sistemi erişimi, veritabanı programlaması ve bulut hizmetleriyle çalışmadan hafif web uygulamaları oluşturmaya, GUI'ler oluşturmaya ve görüntüler, e-kitaplar ve Word dosyalarıyla çalışmaya ve çok daha fazlasına kadar her şeyi basitleştiren kullanışlılık gamını kullanır. Bazıları iyi biliniyor, diğerleri daha az biliniyor, ancak bu Python kitaplıklarının tümü araç kutunuzda bir yeri hak ediyor.

Apache Libcloud

Libcloud'un yaptığı: Tek, tutarlı, birleşik bir API aracılığıyla birden çok bulut sağlayıcısına erişin.

Neden Libcloud kullanmalısınız: Apache Libcloud'un yukarıdaki açıklaması elinizi neşeyle alkışlamazsa, birden fazla bulutla çalışmayı denememişsinizdir. Bulut sağlayıcılarının tümü işleri kendi yöntemleriyle yapmayı severler, düzinelerce sağlayıcıyla başa çıkmak için birleşik bir mekanizma büyük bir zaman tasarrufu ve baş ağrısını yatıştırır. API'ler işlem, depolama, yük dengeleme ve DNS için kullanılabilir; Python 2.x ve Python 3.x desteği ile Python için performans artırıcı JIT derleyicisi PyPy.

Ok

Arrow ne yapar: Python'da tarih ve saatlerin daha temiz bir şekilde ele alınması.

Neden Arrow kullanmalısınız: Saat dilimleri, tarih dönüşümleri, tarih biçimleri ve geri kalan her şeyle uğraşmak zaten bir buçuktur. Tarih / saat çalışması için Python'un standart kitaplığını ekleyin ve iki buçuk baş ağrısı yaşarsınız.

Arrow, dört büyük avantaj sağlar. Birincisi, Arrow, Python'un datetime modülünün yerine geçmiştir, yani ortak işlev çağrıları beklendiği gibi çalışır .now()ve .utcnow()çalışır. İki, Arrow, saat dilimlerini değiştirme ve dönüştürme gibi ortak ihtiyaçlar için yöntemler sağlar. Üç, Arrow "insanlaştırılmış" tarih / saat bilgisi sağlar - örneğin "bir saat önce" bir şey olduğunu veya fazla çaba sarf etmeden "iki saat içinde" olacağını söyleyebilmek gibi. Dördüncüsü, Arrow tarih / saat bilgisini terletmeden yerelleştirebilir.

Seyretmek

İşte ne yapar:  Python'da baskı tarzı hata ayıklama için sağlam destek.

Neden Behold kullanmalı:  Python'da veya bu konuda neredeyse herhangi bir programlama dilinde hata ayıklamanın basit bir yolu vardır: Satır içi printifadeler ekleyin . Ancak baskı hata ayıklama küçük programlarda zahmetsiz olsa da, büyük, genişleyen, çok modüllü projelerde faydalı sonuçlar elde etmek o kadar kolay değildir.

Behold, yazdırma ifadeleri aracılığıyla bağlamsal hata ayıklama için bir araç seti sağlar. Çıktıya tek tip bir görünüm koymanıza, sonuçları etiketlemenize, böylece aramalar veya filtreler aracılığıyla sıralanmalarına ve modüller arasında bağlamlar sağlamanıza olanak tanır, böylece bir modülden kaynaklanan işlevlerin bir diğerinde düzgün bir şekilde hata ayıklaması yapılabilir. Behold, bir nesnenin dahili sözlüğünü yazdırmak, yuvalanmış öznitelikleri ortaya çıkarmak ve hata ayıklama işlemi sırasında diğer noktalarda karşılaştırma için sonuçları depolamak ve yeniden kullanmak gibi yaygın Python'a özgü birçok senaryoyu yönetir.

Siyah

Siyah'ın yaptığı şey: Python kodunu katı ve neredeyse tamamen değişmez bir kurallar dizisine göre biçimlendirir.

Neden Siyah Kullanılır:  YAPF gibi Python kod biçimlendiricileri, birçok yapılandırılabilir seçeneğe sahip olma eğilimindedir - satır uzunluğu, satır bölme seçenekleri, sondaki virgüllerin işlenmesi vb. Siyah, değiştirilemeyen kurallar için tutarlı bir varsayılanlar kümesi uygular. Ortaya çıkan biçimlendirilmiş kod, düzenlenmiş dosyalar arasında olası en az farkla, kod tabanları arasında ve kullanıcılar arasında olabildiğince tutarlıdır.

Siyah, özellikle dikey beyaz boşluklar, derin iç içe geçmiş ifadeler (örneğin, listeler içindeki listeler) ve diğer biçimlendirme seçenekleri konusunda titizseniz, alışmak biraz zaman alır. Ancak uzun vadede, biçimlendirme hakkında düşünme zorunluluğunu ortadan kaldırarak kodunuza konsantre olmanızı sağlar.

Şişe

Bottle ne yapar: Hafif ve hızlı web uygulamaları.

Neden Şişe kullanmalı: Hızlı bir RESTful API'yi bir araya getirmek veya bir uygulama oluşturmak için bir web çerçevesinin çıplak kemiklerini kullanmak istediğinizde, yetenekli ancak minik Bottle size ihtiyacınız olandan fazlasını vermez. Yönlendirme, şablonlar, istek ve yanıt verilerine erişim, düz eski CGI'dan başlayarak birden çok sunucu türü için destek ve WebSockets gibi daha gelişmiş özellikler için destek - hepsi burada. Başlamak için gereken çalışma miktarı da aynı şekilde minimumdur ve Bottle'ın tasarımı, daha gelişmiş işlevlere ihtiyaç duyulduğunda zarif bir şekilde genişletilebilir. 

Tıklayın

Click ne yapar:  Python uygulamaları için hızlı bir şekilde komut satırı arayüzleri oluşturmanıza olanak tanır.

Neden Click kullanmalıyım:  GUI'ler kullanışlıdır, ancak CLI'ler gerçek gücün olduğu yerdir. Bununla birlikte, sağlam bir CLI oluşturmak pek kolay değildir ve Python'da komut satırı seçeneklerini toplamak ve kullanmak için varsayılan araç seti ilkeldir.

Tıklama, bu bitleri ve parçaları yüksek seviyeli, CLI oluşturma API'sinde sarar. Yalnızca birkaç temel komut oluşturmak istiyorsanız, bunu birkaç satır kodla yapabilirsiniz. Bir parametre hakkında daha fazla bilgi için ayrı ayrı bilgi isteme veya ortam değişkenlerinden değer türetme gibi daha gelişmiş davranışlar istiyorsanız, Click aradığınız yeri bulacaktır. Click ayrıca colorama kitaplık aracılığıyla terminal renklerini destekler  ve üçüncü taraf eklentilerle genişletilebilir.

EbookLib

EbookLib ne yapar:  .epub dosyalarını okuyun ve yazın.

Neden EbookLib kullanmalısınız: E  -kitap oluşturmak genellikle bir komut satırı aracını veya diğerini karıştırmayı gerektirir. EbookLib, süreci basitleştiren yönetim araçları ve API'ler sağlar. Geliştirme aşamasındaki Kindle desteği ile EPUB 2 ve EPUB 3 dosyalarıyla çalışır.

Resimleri ve metni sağlayın (ikincisi HTML formatında) ve EbookLib bu parçaları bölümler, iç içe geçmiş içindekiler tablosu, resimler, HTML biçimlendirmesi vb. İle tamamlanmış bir e-kitapta bir araya getirebilir. Kapak, sırt ve stil sayfası verileri de desteklenmektedir. Bir eklenti sistemi, üçüncü tarafların kütüphanenin davranışlarını genişletmesine izin verir.

EbookLib'in sunduğu her şeye ihtiyacınız yoksa, Mkepub'ı deneyin. Mkepub, temel e-kitap birleştirme işlevini yalnızca birkaç kilobayt boyutunda olan bir kitaplıkta paketler. Mkepub'ın küçük bir dezavantajı, Jinja2'ye ihtiyaç duymasıdır, bu da MarkupSafe kütüphanesini gerektirir.

Aşırı duygusal

Gooey ne yapar:  Konsol tabanlı bir Python programına platforma özgü bir GUI verin.

Neden Gooey kullanmalısınız:  Kullanıcılara, özellikle de sıralı dosya kullanıcılarına bir komut satırı arayüzü sunmak, uygulamanızın kullanımını engellemenin en iyi yollarından biridir. Zorlu ineklerden çok azı, hangi seçeneklerin hangi sırayla geçeceğini bulmaktan hoşlanıyor. Gooey, argparse kitaplığı tarafından beklenen argümanları alır ve bunları WxPython kitaplığı aracılığıyla kullanıcılara GUI formu olarak sunar. Tüm seçenekler etiketlenir ve uygun kontrollerle görüntülenir (çok seçenekli bir argüman için açılır menü gibi). Halihazırda argparse kullandığınızı varsayarsak, tek bir içerme ve tek bir dekoratör gibi çok az ek kodlama gereklidir.

Çağırmak

Ne İşe Yarar : Pythonic uzaktan yürütme - yani, bir Python kitaplığı kullanarak yönetici görevlerini gerçekleştirin.

Neden Invoke kullanmalıyım : Python'u genel kabuk komut dosyası oluşturma görevlerinin yerine kullanmak bir dünya anlamını taşır. Invoke, kabuk komutlarını çalıştırmak ve komut satırı görevlerini Python işlevleriymiş gibi yönetmek için yüksek seviyeli bir API sağlar ve bu görevleri kendi kodunuza yerleştirmenize veya bunların etrafında zarif bir şekilde inşa etmenize olanak tanır. Güvenilmeyen girdilerin herhangi bir kabuk komutuna olduğu gibi aktarılmasına izin vermemeye dikkat edin.

Nuitka

Nuitka ne yapar:  Python'u kendi kendine yeten C yürütülebilir dosyalarına derleyin.

Neden Nuitka kullanmalı:  Cython gibi, Nuitka da Python'u C'ye derler.Ancak, Cython en iyi sonuçlar için kendi özel sözdizimini gerektirir ve esas olarak matematik ve istatistik uygulamalarına odaklanır, Nuitka herhangi bir Python programıyla olduğu gibi çalışır, C'ye derler ve tek dosyalık bir yürütülebilir dosya üretir ve yol boyunca yapabileceği yerlerde optimizasyonlar uygular. Nuitka hala erken aşamalarında ve planlanan optimizasyonların çoğu hala gelecek. Yine de, bir Python betiğini hızlı bir komut satırı uygulamasına dönüştürmenin uygun bir yoludur.

Numba

Numba ne yapar:  Matematik ağırlıklı işlevleri seçici olarak hızlandırın.

Neden Numba kullanmalısınız:  Python dünyası matematik işlemlerini hızlandırmak için eksiksiz bir paket alt kültürü içerir. Örneğin NumPy, bir Python arayüzünde yüksek hızlı C kitaplıklarını sarmalayarak çalışır ve Cython, hızlandırılmış performans için isteğe bağlı yazımla Python'dan C'ye derler. Ancak Numba, Python işlevlerinin bir dekoratörden başka bir şey olmadan seçici olarak hızlandırılmasına izin verdiği için kolayca en uygun olanıdır. Daha fazla hız artışı için, iş yüklerini paralel hale getirmek için yaygın Python deyimlerini kullanabilir veya SIMD veya GPU talimatlarını kullanabilirsiniz.

NumPy'yi Numba ile kullanabileceğinizi unutmayın. Sonuçta NumPy, sıfırdan uygulanması gerekmeyen birçok kullanıma hazır algoritmaya sahiptir. Ancak küçük "çekirdek" algoritmaları için, Numba çoğu durumda NumPy'den birçok kez daha iyi performans gösterecektir.

Openpyxl

Openpyxl ne yapar:  Excel dosyalarını okur, yazar ve işler .

Neden OpenPyxl kullanmalı: Birinden sayı hesaplayıcıların işlerinde kullandıkları  üç aracı adlandırmasını isteyin, muhtemelen bu sırayla değil Python, R ve Excel'i alacaksınız. Excel (henüz) yerel Python bağlantısına sahip değil, ancak üçüncü taraf paketleri bu boşluğu çeşitli şekillerde kapattı.

Openpyxl,  Excel'i doğrudan değiştirmek yerine Excel dosyalarını değiştirerek çalışır  . Openpyxl ile elektronik tabloların ve çalışma kitaplarının oluşturulmasını otomatikleştirebilir, formüller oluşturabilir, hücreleri bu formüllerle doldurabilir ve diğer birçok işlemi gerçekleştirebilirsiniz. Hücre stilleri ve koşullu biçimlendirme gibi Excel nesnelerinin özelliklerini de değiştirebilirsiniz. Elektronik tablolara bakarak önemli ölçüde zaman harcayan herkes burada yararlı bir şeyler bulacaktır.

İşemek çiş

Peewee ne yapar:  SQLite, MySQL ve PostgreSQL'i destekleyen ve birçok uzantıya sahip küçük bir ORM (nesne-ilişkisel eşleyici).

Neden Peewee kullanmalı: ORM'yi  herkes sevmez; bazıları şema modellemeyi veritabanı tarafında bırakmayı ve onunla yapılmayı tercih eder. Ancak veritabanlarına dokunmak istemeyen geliştiriciler için iyi yapılandırılmış, göze batmayan bir ORM bir nimettir olabilir. Ve SQL Alchemy kadar gelişmiş bir ORM istemeyen geliştiriciler için Peewee mükemmel bir seçimdir.

Peewee modellerinin oluşturulması, bağlanması ve kullanılması kolaydır. Ayrıca, sayfalandırma gibi birçok yaygın sorgu işleme işlevi doğrudan yerleşiktir. Diğer veritabanları için uzantılar, test araçları ve bir şema geçiş sistemi de dahil olmak üzere eklentiler olarak daha fazla özellik mevcuttur - ORM'den nefret edenlerin bile öğrenebileceği bir özellik Aşk. Peewee 3.x dalının (önerilen sürüm), Peewee'nin önceki sürümleriyle tamamen geriye dönük uyumlu olmadığını unutmayın.

Yastık

Yastık ne yapar: Acısız  görüntü işleme.

Neden Yastık kullanmalı:  Görüntü işlemeyi gerçekleştiren çoğu Pythonist, PIL'e (Python Görüntüleme Kitaplığı) aşina olmalıdır, ancak PIL eksiklikler ve sınırlamalarla doludur ve nadiren güncellenir. Yastık amaçları hem kullanımı daha kolay olması ve  minimal değişiklikleri yoluyla PIL ile kod uyumlu. Hem yerel Windows görüntüleme işlevleriyle hem de Python'un Tcl / Tk destekli Tkinter GUI paketiyle konuşmak için uzantılar dahildir. Pillow, GitHub veya PyPI deposu aracılığıyla edinilebilir.

Şiir

Şiir ne yapar:  Python projeleriniz için bağımlılıkları ve paketleri üst düzey bir şekilde yönetir.

Neden Şiir Kullanmalı:  Teoride yeni bir Python projesi başlatmak için boş bir dizin oluşturmak ve onu .py dosyalarıyla doldurmak dışında hiçbir şey yapmanız gerekmez. Pratikte, özellikle iddialı bir proje için, çok daha fazlasını yapmanız gerekecek - bir BENİOKU oluşturmalı, bazı klasör yapılarını kurmalı, bağımlılıklarınızı bildirmeli vb. Bunların hepsini elle yapmak bir baş ağrısıdır.

Şiir, bu kurulum ve bakımın çoğunu otomatikleştirir. poetry new Temel bileşen çeşitleriyle önceden doldurulmuş yeni bir proje dizini ve sanal ortam oluşturmak için çalıştırın . Python'un kendi pyprojec.toml dosya biçimini kullanarak bağımlılıklarınızı bildirin ve Poetry onları sizin için yönetsin. Şiirle yönetilen mevcut ürünler, bağımlılıklarının Poetry'nin komut satırından otomatik olarak yüklenmesini, yenilenmesini ve değiştirilmesini sağlayabilir. Şiir ayrıca uzak bir depoda (PyPI gibi) yayınlamayı da yönetir.

PyFilesystem

PyFilesystem ne yapar:  Herhangi bir dosya sistemine - herhangi bir dosya sistemine Pythonic arayüzü   .

PyFilesystem'i neden kullanmalısınız: PyFilesystem'in  arkasındaki temel fikir daha basit olamaz: Python'un filenesneleri tek bir dosyayı soyutlarken, PyFilesystem'in FSnesneleri de tüm bir dosya sistemini soyutlar. Bu sadece disk üzerindeki dosya sistemleri anlamına gelmez. PyFilesystem ayrıca FTP dizinlerini, bellek içi dosya sistemlerini, işletim sistemi tarafından tanımlanan konumlar için dosya sistemlerini (kullanıcı dizini gibi) ve hatta yukarıdakilerin birbiri üzerine bindirilmiş kombinasyonlarını destekler.

PyFilesystem, dosyaları işleyen çapraz platform kodu yazmayı kolaylaştırmanın yanı sıra, standart kitaplığın farklı bölümlerinden, özellikle  os ve  io. Ayrıca, bir dosya sisteminin konsol dostu ağaç görünümlerini yazdırmak için bir araç gibi, başka türlü sıfırdan oluşturulması gerekebilecek yardımcı programlar da sağlar.

Pygame

Pygame ne yapar:  Python'da video oyunları veya oyun kalitesinde ön uçlar oluşturun.