Bu Kitaplıklar ve Araçlar ile Python Gibi Bir Kahramanın Hatalarını Ayıklayın
Yayınlanan: 2022-06-26Gerçek bir Python hata ayıklama uzmanı olmak ister misiniz? Yakında ele alacağımız bu harika Python hata ayıklama araçlarını ve kitaplıklarını kullanarak Python kodunuzda hata ayıklayın!
Python, birçok geliştirme amacı için kullanılan genel amaçlı, üst düzey ve nesne yönelimli bir programlama dilidir. Ayrıca, web uygulaması geliştirmeden web kazımaya ve Makine öğrenimi ve Veri Bilimi gibi daha karmaşık uygulamalara kadar farklı uygulamalar için etkili bir geliştirme aracıdır.
Geliştirme sırasında, programlamada bug adı verilen hatalar oluşmaya meyillidir. Geliştiriciler, koddaki mevcut ve olası hataları tespit etmek ve ortadan kaldırmak için birkaç adım atar. Sonuç olarak program kodunun ezilmesini engellemiş olursunuz. Bu işleme hata ayıklama diyoruz.
Bu makale, kullanabileceğiniz çeşitli Python hata ayıklayıcılarına bakacaktır. Bu hata ayıklayıcıların birbirinden ne kadar farklı olduğunu ve bunların uygulanmasını neyin etkili kıldığını da göreceğiz.
cProfiler hata ayıklama kitaplığı
cProfiler, popüler bir kitaplık ve uzun süre çalışan kodun profilini çıkaran bir C uzantısıdır. Uzun vadede, program kodunun çalıştırılması uzun süren bölümlerini tanımlar. Kodun farklı bölümlerini çalıştırmak için geçen kesin süreyi tanımlamasına rağmen, koddaki hataları tam olarak tanımlamaz veya düzeltmez.
Bu nedenle, diğer hata ayıklayıcıları kullanma ihtiyacı ortaya çıkar.
Neyse ki Python kodunuz için hata ayıklama araçları olarak ipdb, Django-debug-toolbar, pyelftools, viztracer ve py-spy gibi önerilen kitaplıkları kullanabilirsiniz.
ipdb hata ayıklama aracı
Tam olarak IPython etkin Python Hata Ayıklayıcı, pdb'nin işlevselliğini içeren etkileşimli bir üçüncü taraf hata ayıklayıcıdır. Ipbd ayrıca etkileşimli kabuk IPython desteği ile birlikte gelir. Bu destek, diğer destek özelliklerinin yanı sıra sekme tamamlama, renk desteği ve sihirli işlevleri içerir.
Bu hata ayıklayıcı, ilgili işlevleri dışa aktararak IPython hata ayıklayıcısına erişim sağlar. Aynı zamanda, pdb modülünde olduğu gibi, daha iyi iç gözlem için benzer bir arayüz sunar.
Ipdb ile hata ayıklama
Kitaplık, aşağıdaki pip komutunu kullanarak kurulum gerektirir.
pip install ipdb
ipdb kullanımına bir örnek şöyle görünür:
import ipdb alpha_list = ['a', 'b', 'c'] fruit_list = ['orange', 'mango', 'kiwi'] def nested_loop(): for fruit_list: print (fruit) ipdb.set_trace() for x in alpha_list: print(x) if __name__ == '__main__': nested_loop()
Aşağıdaki komutu kullanarak python dosyasını çalıştırın, burada test.py dosyamın adıdır:
python -m ipdb test.py
ipdb içe aktarma ve ipdb.set_trace()
işlevini çalıştırma, programın başlamasına izin verir ve yürütme boyunca hata ayıklayıcıyı çalıştırır.
ipdb.pm()
işlevi(ölüm sonrası), sihirli %debug
işlevine benzer şekilde hareket eder.
set_trace bağımsız değişkenleri
Tanımlanmış birkaç kod satırını göstermek için bağlamı set_trace
bir argüman olarak iletin. Ayrıca, set_trace
argüman olarak da kabul ettiği cond
, Boolean değerlerini kabul eder ve cond
öğesini true
olarak ayarladığınızda ipdb arabirimini başlatır.
Yapılandırma dosyasını kullanma
Bağlam bağımsız değişkenini, sırasıyla ana klasörde ve proje klasöründe bulunan bir idpdb dosyası veya setup.cfg
dosyasıyla ayarlayın. ipdb'nin işlevselliğini daha fazla kontrol edebilirsiniz.
Django Hata Ayıklama araç çubuğu
Django hata ayıklama araç çubuğu, Django'da popüler bir hata ayıklama aracıdır: bir Python çerçevesi.
Bu yapılandırılabilir panel seti, geçerli bir istek veya yanıtın hata ayıklama bilgilerini görüntüler. Araç çubuğunu tıkladığınızda, panelin içeriği hakkında daha fazla ayrıntı görüntülenir.
Bu araç, Django geliştirme ortamını baştan sona inceler.
Buradaki kurulum sürecini ve yapılandırma talimatlarını takip edin.
Pyelftools kitaplığı
Pyelftools kütüphanesi tamamen Python üzerine kurulmuştur. ELF dosyalarını ve DWARF hata ayıklama bilgilerini ayrıştırır ve analiz eder ve yalnızca Python'un çalışmasını gerektirir.
Harici kütüphanelere sahip olmadığı için Pyelftools'u kullanmak kolaydır. Ek olarak, ortam değişkenlerinde PYTHONPATH
ayarlanmasını gerektirdiğinden kurulum olmadan pyelftools'u kullanmak oldukça kolaydır.
Aşağıdakileri kullanarak kuracaksınız:
pip install pyelftools
Pyelftools'un uygulanması, basitçe onu içe aktarmayı ve programınızda çağırmayı gerektirir.
Dondurma hata ayıklama aracı
Bu, Python geliştiricileri için başka bir verimli hata ayıklama aracıdır.
Dondurma kullanmak, ayrıca ic()
, aşağıda belirtildiği gibi print()'e göre birçok avantaj sağlar:

- Yazmak, kelimenin tam anlamıyla nispeten daha hızlıdır.
- Veri yapılarını oldukça iyi yazdırır.
-
ic()
ile ifadeleri veya değişken adlarını ve değerlerini yazdırın. - Çıktının sözdizimini vurgular.
- İsteğe bağlı olarak, dosya adı, satır numarası ve üst işlev dahil olmak üzere program bağlamını içerir.
Bu paketi kullanmadan önce aşağıdaki pip komutunu kullanarak kurun:
pip install icecream
İşin iyi yanı, install()
kullanarak kurarak tüm dosyalara içe aktarmanıza gerek kalmadan tüm dosyalarda ic()
'den yararlanabilmenizdir. Ayrıca, install()
, yerleşik modülüne ic()
) ekler. Yorumlayıcının içe aktardığı tüm dosyalar ic()
paylaşacaktır.
x.py adını verebileceğiniz ilk kök python dosyanıza, install()
ic()
ekleyin.
from icecream import install install() from y import mult mult()
y.py fil'de x.py dosyası içe aktarılıyor, ic()'i çağırın
def mult(): z=8 ic(z)
Sonuçlar:
y ic| z : 8
ic()'i daha verimli yapan şey, kendisine iletilen değişkenleri (kendisi dahil) inceleme ve ardından aşağıdaki örnekte olduğu gibi argümanlarını ve argüman değerlerini yazdırma yeteneğidir.
from icecream import ic def mult(x): return x * 4 ic(mult(100))
Çıktı:
ic| mult(100): 400
Ayrıca, argümanlarını döndürdüğü için önceden var olan koda ic() ekleyebilirsiniz. Aşağıdaki örnek ic| x: 12
değerini döndürür. ic| x: 12
, sonra ic| y: 48
ic| y: 48
.
from icecream import ic x = 12 def mult(x): return x*4 y = mult(ic(x)) ic(y)
py-spy aracını kullanarak hata ayıklama
Bir hata ayıklama aracı olarak Python programları için örneklerin profilini çıkarmak için py-spy kullanabilirsiniz. Programı yeniden başlatmadan veya kodunu değiştirmeden py-spy, Python programının yürütülmesini görselleştirir. Ayrıca Rust ile yazıldığı için düşük bir ek yükü vardır.
Ek olarak, üretim Python koduna karşı py-spy kullanmanın, profilli Python programından farklı bir süreç çalıştırdığı için güvenli olduğunu düşünmeye değer.
Gördüğümüz diğer tüm araçlar gibi, py-spy aracını kurduktan sonra kullanabilirsiniz.
pip install py-spy
Python programınızın üretim trafiğine hizmet etmesine rağmen, py-spy kullanarak bu programın profilini çıkarabilir ve hatalarını ayıklayabilirsiniz, bu da onu kritik bir Python profil oluşturma aracı haline getirir.
Viztracer hata ayıklayıcı
Alternatif olarak, Python programınızın yürütülmesini izlemek ve görselleştirmek için bir hata ayıklama aracı olan viztracer'ı kullanabilirsiniz. Aynı zamanda, düşük maliyetli günlük kaydına sahip bir profil oluşturma aracıdır.
Viztracer'ı etkili bir hata ayıklama aracı yapan nedir?
- Kullanımı oldukça kolaydır ve çalışması harici paketlere bağlı değildir.
- Viztracer, tüm İşletim Sistemi platformlarında çalışır: Windows, Linux veya macOS.
- Güçlü ön ucu, sorunsuz bir şekilde GB düzeyinde izleme sağlar.
- Kaynak kodunuzdaki herhangi bir kod bölümünü değiştirmeden, isteğe bağlı işlevleri ve değişkenler ve nitelikler, Yükseltilmiş İstisnalar, Çöp Toplayıcı işlemleri vb. gibi ek bilgileri günlüğe kaydetmek için RegEx'i kullanır.
- Viztracer'ı düşük maliyetli bir hata ayıklama aracı yapan şey, programınızda ihtiyaç duymadığınız verileri filtreleme yeteneğidir. Daha sonra günlüğü JSON biçiminde boşaltmadan önce eski bilgileri tutar.
- Program çalışırken anlık olay, değişken olay ve Süre olayı gibi özel olayları eklemek için kullanabilirsiniz. Bu şekilde, bir yazdırma hata ayıklaması gibi çalışır, ancak viztracer, verileri izlerken yazdırmanın ne zaman gerçekleştiğini size bildirir.
Çözüm
Python profili oluşturma ve hata ayıklama, tıpkı yazılım profili oluşturma gibi, dikkat gerektiren bir geliştirmede önemli bir adımdır. Bu adım, kodun genel performansının optimize edilmesi için hata içeren kod bölümlerinin ekarte edilmesine yardımcı olur.
Yukarıda ele aldığımız hata ayıklama araçları, bir Python geliştiricisinin işini oldukça kolaylaştıran etkili araçlardır.
Diğer hata ayıklama araçlarının cProfiler'dan daha etkili çalıştığını görerek, gerçek bir kahraman gibi Python kodunuzda hata ayıklayabilir ve kodunuzun çökmeden çalışmasını önlemek için bu hata ayıklayıcıları kullanarak olası hataları düzeltebilirsiniz.
Mutlu Hata Ayıklama!