تصحيح أخطاء Python Like a Hero باستخدام هذه المكتبات والأدوات
نشرت: 2022-06-26هل تريد أن تكون خبيرًا حقيقيًا في تصحيح أخطاء Python؟ تصحيح أخطاء كود Python الخاص بك باستخدام مكتبات وأدوات تصحيح Python المذهلة التي سنغطيها قريبًا!
Python هي لغة برمجة للأغراض العامة وعالية المستوى وموجهة للكائنات تستخدم في العديد من أغراض التطوير. علاوة على ذلك ، فهي أداة تطوير فعالة لتطبيقات مختلفة ، من تطوير تطبيقات الويب إلى تجريف الويب والتطبيقات الأكثر تعقيدًا مثل التعلم الآلي وعلوم البيانات.
أثناء التطوير ، تكون الأخطاء التي تسمى الأخطاء في البرمجة عرضة للوقوع. يتخذ المطورون عدة خطوات لاكتشاف الأخطاء الموجودة والمحتملة من التعليمات البرمجية وإزالتها. نتيجة لذلك ، تمنع رمز البرنامج من التكسير. نسمي هذه العملية تصحيح الأخطاء.
ستلقي هذه المقالة نظرة على العديد من أدوات تصحيح أخطاء Python المتاحة التي يمكنك استخدامها. سنرى أيضًا مدى اختلاف أدوات تصحيح الأخطاء هذه عن بعضها البعض وما الذي يجعل تنفيذها فعالاً.
مكتبة تصحيح أخطاء cProfiler
cProfiler ، هي مكتبة شائعة وامتداد C ينفذ التنميط للكود طويل الأمد. على المدى الطويل ، فإنه يحدد أقسام رمز البرنامج التي تستغرق وقتًا طويلاً للتشغيل. على الرغم من أنه يحدد الوقت الدقيق الذي يستغرقه تشغيل أقسام مختلفة من الكود ، إلا أنه لا يحدد الأخطاء الموجودة في الكود ولا يصلحها تمامًا.
لذلك ، تنشأ الحاجة إلى استخدام مصححات أخرى.
لحسن الحظ ، يمكنك استخدام المكتبات الموصى بها مثل ipdb و Django-debug-toolbar و pyelftools و viztracer و py-spy كأدوات لتصحيح أخطاء كود Python الخاص بك بدلاً من ذلك.
أداة تصحيح أخطاء ipdb
يعد مصحح Python Debugger الذي يدعم IPython بالكامل مصححًا تفاعليًا لجهة خارجية يحتوي على وظائف pdb. يأتي Ipbd أيضًا مع دعم shell IPython التفاعلي. يتضمن هذا الدعم إكمال علامة التبويب ، ودعم الألوان ، والوظائف السحرية ، من بين ميزات الدعم الأخرى.
يتيح مصحح الأخطاء هذا الوصول إلى مصحح أخطاء IPython عن طريق تصدير الوظائف ذات الصلة. كما أنه يوفر واجهة مماثلة لتحسين الاستبطان ، تمامًا كما هو الحال في وحدة pdb.
التصحيح باستخدام Ipdb
تتطلب المكتبة التثبيت باستخدام الأمر pip أدناه.
pip install ipdb
مثال على استخدام ipdb سيبدو كالتالي:
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()
قم بتشغيل ملف python باستخدام الأمر أدناه حيث test.py هو اسم ملفي:
python -m ipdb test.py
يسمح استيراد ipdb وتشغيل ipdb.set_trace()
ببدء البرنامج وتشغيل مصحح الأخطاء خلال التنفيذ.
تعمل الوظيفة ipdb.pm()
(بعد الوفاة) بشكل مشابه للدالة السحرية %debug
.
وسيطات set_trace
مرر السياق كوسيطة إلى set_trace
لإظهار عدة أسطر من التعليمات البرمجية المحددة. بالإضافة إلى ذلك ، فإن cond
، الذي set_trace
أيضًا كوسيطة ، ويقبل القيم المنطقية ، ويبدأ واجهة cond
عند تعيين الشرط على true
.
باستخدام ملف التكوين
عيّن وسيطة السياق مع ملف idpdb أو ملف setup.cfg
المتاح في المجلد الرئيسي ومجلد المشروع ، على التوالي. نرحب بك للتحقق من وظائف ipdb بشكل أكبر.
شريط أدوات Django Debug
شريط أدوات تصحيح الأخطاء Django هو أداة تصحيح أخطاء شائعة في Django: إطار عمل Python.
تعرض هذه المجموعة القابلة للتكوين من اللوحات الطلب الحالي أو معلومات تصحيح أخطاء الاستجابة. عند النقر فوق شريط الأدوات ، يتم عرض مزيد من التفاصيل حول محتويات اللوحة.
هذه الأداة تفحص بدقة بيئة تطوير Django.
اتبع عملية التثبيت وإرشادات التكوين هنا.
مكتبة Pyelftools
مكتبة pyelftools مبنية بالكامل على Python. يوزع ويحلل ملفات ELF ومعلومات تصحيح أخطاء DWARF ويتطلب تشغيل Python فقط.
يعد استخدام Pyelftools أمرًا سهلاً لأنه لا يحتوي على مكتبات خارجية. بالإضافة إلى ذلك ، يعد استخدام أداة pyelftools بدون تثبيت أمرًا سهلاً للغاية لأنه يتطلب ببساطة ضبط PYTHONPATH
في متغيرات البيئة.
ستقوم بتثبيته باستخدام:
pip install pyelftools
يتطلب تنفيذ أداة pyelftools ببساطة استيرادها واستدعاءها في برنامجك.
أداة تصحيح أخطاء الآيس كريم
هذه أداة تصحيح أخطاء أخرى فعالة لمطوري بايثون.
استخدام الآيس كريم ، أيضًا ic()
، له فوائد عديدة على print () ، كما هو موضح أدناه:
- كتابتها أسرع نسبيًا ، بالمعنى الحرفي للكلمة.
- يطبع هياكل البيانات بشكل جيد.
- طباعة التعبيرات أو أسماء المتغيرات وقيمها باستخدام
ic()
. - يسلط الضوء على بناء الجملة الناتج.
- اختياريًا ، يتضمن سياق البرنامج ، بما في ذلك اسم الملف ورقم السطر والوظيفة الأصلية.
قبل استخدام هذه الحزمة ، قم بتثبيتها باستخدام الأمر pip أدناه:

pip install icecream
الشيء الجيد هو أنه يمكنك الاستفادة من ic()
في جميع الملفات دون الحاجة بالضرورة إلى استيراده في جميع الملفات عن طريق تثبيته باستخدام install()
. علاوة على ذلك ، يضيف ( install()
ic()
إلى الوحدة المدمجة. ستشارك جميع الملفات التي يستوردها المترجم في ic()
.
في ملف root python الأول ، والذي يمكنك تسميته x.py ، أضف ic()
باستخدام install()
.
from icecream import install install() from y import mult mult()
في y.py fil ، يتم استيراد ملف x.py ، اتصل بـ ic ()
def mult(): z=8 ic(z)
نتائج:
y ic| z : 8
ما يجعل ic () أكثر كفاءة هو قدرته على فحص المتغيرات التي تم تمريرها إليه ، بما في ذلك نفسه ، ثم طباعة وسيطاته وقيم الوسيطات كما في المثال التالي.
from icecream import ic def mult(x): return x * 4 ic(mult(100))
انتاج:
ic| mult(100): 400
علاوة على ذلك ، يمكنك إدراج ic () في التعليمات البرمجية الموجودة مسبقًا لأنها تُرجع وسيطاتها. يقوم المثال أدناه بإرجاع ic| x: 12
ic| x: 12
، ثم 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
يمكنك استخدام py-spy لتخصيص عينات لبرامج Python كأداة تصحيح. بدون إعادة تشغيل البرنامج أو تعديل الكود الخاص به ، يتخيل py-spy تنفيذ برنامج Python. علاوة على ذلك ، نظرًا لأنه مكتوب بلغة Rust ، فإنه يحتوي على مقدار حمل منخفض.
بالإضافة إلى ذلك ، تجدر الإشارة إلى أن استخدام py-spy ضد كود Python الخاص بالإنتاج آمن لأنه يدير عملية مختلفة عن برنامج Python المصمم على شكل ملف.
مثل كل أداة سابقة رأيناها ، يمكنك استخدام أداة py-spy بعد تثبيتها.
pip install py-spy
على الرغم من أن برنامج Python الخاص بك يخدم حركة مرور الإنتاج ، فلا يزال بإمكانك ملف تعريف هذا البرنامج وتصحيحه باستخدام py-spy ، مما يجعله أداة تعريف Python مهمة.
مصحح أخطاء Viztracer
بدلاً من ذلك ، يمكنك استخدام viztracer ، أداة تصحيح الأخطاء ، لتتبع وتصور تنفيذ برنامج Python الخاص بك. وهي أيضًا أداة تحديد ملفات التعريف مع تسجيل النفقات العامة المنخفضة.
ما الذي يجعل viztracer أداة تصحيح أخطاء فعالة؟
- استخدامه سهل للغاية ، ولا يعتمد على الحزم الخارجية للعمل.
- يعمل Viztracer على جميع أنظمة التشغيل الأساسية: Windows أو Linux أو macOS.
- الواجهة الأمامية القوية تعرض بسلاسة تتبع مستوى GB.
- يستخدم RegEx لتسجيل الوظائف التعسفية والمعلومات الإضافية مثل المتغيرات والسمات ، والاستثناءات المرتفعة ، وعمليات تجميع القمامة ، وما إلى ذلك ، دون تعديل أي قسم من التعليمات البرمجية داخل كود المصدر الخاص بك.
- ما يجعل viztracer أداة تصحيح أخطاء منخفضة الحمل هو قدرتها على تصفية البيانات التي لا تحتاجها في برنامجك. ثم تحتفظ بالمعلومات القديمة قبل تفريغ السجل بتنسيق JSON.
- يمكنك استخدامه لإدراج أحداث مخصصة مثل الحدث الفوري والحدث المتغير وحدث المدة أثناء تشغيل البرنامج. بهذه الطريقة ، يعمل مثل تصحيح أخطاء الطباعة ، باستثناء أن viztracer يتيح لك معرفة وقت حدوث الطباعة أثناء تتبع البيانات.
استنتاج
يعد تحديد سمات Python وتصحيح الأخطاء تمامًا مثل ملفات تعريف البرامج خطوة أساسية في التطوير الذي يستدعي الانتباه. تساعد هذه الخطوة في استبعاد أي أقسام تعليمات برمجية بها أخطاء بحيث يتم تحسين الأداء العام للشفرة.
أدوات التصحيح التي قمنا بتغطيتها أعلاه هي أدوات فعالة تجعل عمل مطور Python سهلًا جدًا.
نظرًا لأن أدوات تصحيح الأخطاء الأخرى تعمل بشكل أكثر فاعلية من cProfiler ، يمكنك ، مثل البطل الحقيقي ، تصحيح كود Python الخاص بك وإصلاح أي أخطاء محتملة باستخدام مصححات الأخطاء هذه لمنع تشغيل التعليمات البرمجية الخاصة بك دون تعطل.
تصحيح أخطاء سعيد!