תן לבסיס הקוד שלך נקיון קפיץ עם כלי שורת הפקודה הקל לשימוש זה.
כלי מוך הוא משאב רב ערך שיכול לעזור לך לתפוס שגיאות וחוסר עקביות בקוד שלך.
Flake8 הוא אחד מכלי המוך הפופולריים ביותר עבור Python. הוא מזהה שגיאות תחביר ועיצוב בקוד שלך, יחד עם בעיות אחרות כמו ייבוא לא בשימוש. זה מאוד גמיש מכיוון שלמרות שיש לו כללי ברירת מחדל, אתה יכול לשנות אותם או להוסיף להם כדי שיתאימו לדרישות שלך.
אתה יכול גם להגדיר את Flake8 לפעול כאשר אתה שומר עדכונים לקוד שלך באמצעות VS Code. כל התכונות הללו הופכות אותו לכלי בעל ערך בעת כתיבת תוכניות Python.
התקנת Flake8
בצע את השלבים הבאים כדי להתקין את Flake8 בסביבת הפיתוח שלך. ייתכן שתצטרך התקן את Pip במחשב שלך ראשון.
- הפעל את הפקודה למטה בטרמינל שלך כדי להתקין את Flake8:
pip להתקין flake8
- ודא כי Flake8 מותקן על ידי הפעלת הפקודה הבאה:
flake8 --גרסה
- אם Flake8 מותקן כהלכה, אתה אמור לראות פלט דומה לזה:
4.0.1 (מקבה: 0.6.1, pycodestyle: 2.8.0, pyflakes: 2.4.0) CPython 3.9.13עַל
לינוקס
לאחר שהתקנת בהצלחה את Flake8, תוכל להתחיל להשתמש בו.
שימוש ב- Flake8 לניתוח קוד Python
כדי להבין כיצד להשתמש ב- Flake8, התחל עם הקוד הבא. יש לו כמה שגיאות מכוונות. העתק אותו לקובץ בשם
greeting.py.defבְּרָכָה(שֵׁם):
הדפס("שלום, " + שם)
בְּרָכָה("אליס")
בְּרָכָה("בוב")
הפעלת Flake8 על קובץ בודד
התחביר להפעלת Flake8 על קובץ בודד הוא כדלקמן.
flake8 path/to/file.py
בדוגמה זו, נווט אל הספרייה המכילה את הקובץ greting.py והפעל את הפקודה הבאה.
flake8 greeting.py
Flake8 אמור להחזיר את ההודעה הבאה שמראה שהייתה שגיאת הזחה.
בְּרָכָה.py:5:1: E999שגיאת כניסה: בלתי צפוילְשַׁנֵן
פלט זה מצביע על כך ששורה 5 מסומנת שלא לצורך. ל תקן את שגיאת הזחה זו, עליך להסיר את הרווח מתחילת שורה זו.
defבְּרָכָה(שֵׁם):
הדפס("שלום, " + שם)
בְּרָכָה("אליס")
בְּרָכָה("בוב")
כעת כאשר אתה מפעיל את Flake8, תקבל את האזהרות הבאות.
בְּרָכָה.py:4:1: E305צָפוּי 2 רֵיקשורותלאחרמעמדאוֹפוּנקצִיָההַגדָרָה, מצאתי 1
בְּרָכָה.py:5:16: W292לאשורה חדשהבְּ-סוֹףשֶׁלקוֹבֶץ
פלט זה מציין את הבעיות הבאות:
- בשורה 4, צריכות להיות שתי שורות ריקות אחרי הגדרת פונקציית הברכה, אבל יש רק אחת.
- בשורה 5, אמורה להיות שורה חדשה בסוף הקובץ.
לאחר שתתקן את הבעיות הללו, flake8 לא אמור להחזיר הודעות.
עד כה, ניתחנו רק קובץ אחד, אך ברוב המקרים, תרצה לנתח מספר קבצים.
הפעלת Flake8 על מספר קבצים
תגיד שהתקשרת אלייך אחרת test_greeting.py שמכיל את הקוד הבא:
מ בְּרָכָה יְבוּא בְּרָכָה
deftest_greet():
לִטעוֹן בְּרָכָה("אליס") == "שלום, אליס!"
כדי לנתח את שני הקבצים הללו, הפעל את הפקודה הבאה.
flake8 greeting.py test_greeting.py
שיטה זו עובדת אך אם יש לך יותר משני קבצים, הקלדת שמות הקבצים עלולה להיות מעייפת ונוטה לשגיאות.
זה יעיל יותר להשתמש בפקודה הבאה כדי לנתח את כל הקבצים בספרייה הנוכחית:
פתית8.
הבנת שגיאות ואזהרות של Flake8
Flake8 מדווח על שני סוגי בעיות:
- שגיאות: שגיאה מציינת תחביר או בעיה מבנית שמונעת מהקוד שלך לפעול כמו שגיאת ההזחה מהדוגמה של greeting.py.
- אזהרות: אזהרה מצביעה על בעיה פוטנציאלית או הפרה של הנחיות בסגנון PEP 8 כמו האזהרה "אין שורה חדשה בסוף הקובץ" מהדוגמה של greeting.py.
חלק מהשגיאות והאזהרות הנפוצות הן:
- E101: הזחה מכילה רווחים וטאבים מעורבים.
- E302: צפויות 2 שורות ריקות, נמצא 0.
- E999 IndentationError: הזחה לא צפויה.
- W291: חלל לבן נגרר.
- E501: שורה ארוכה מדי (מקסימום 79 תווים).
- F401: מודול מיובא אך לא בשימוש.
כאשר אתה מפעיל את Flake8 הוא יוציא הודעה כמו זו שמוצגת למעלה ומספר השורה, ומיקום הקוד אליו מפנה ההודעה. זה עוזר לך לדעת היכן בדיוק יש בקוד שלך בעיות שחוסכות לך זמן ניפוי באגים.
הגדרת Flake8
עבור פרויקטים מסוימים, הכללים של Flake8 עשויים להיות נוקשים מדי. במקרים אלה, Flake8 מאפשר לך להגדיר אותו ולהתאים את התנהגותו כך שתתאים לדרישות שלך.
אתה יכול לספק אפשרויות תצורה כגון:
- התעלמות משגיאות או אזהרות ספציפיות.
- הגדרת אורך הקו המרבי.
- ציון כללים נוספים.
כדי להדגים, צור קובץ תצורה בשם setup.cfg. אתה יכול גם להוסיף את אפשרויות התצורה לקובץ בשם tox.ini, או .flake8.
בקובץ זה, התחל ביצירת קטע flake8 באופן הבא:
[פליק8]
לאחר מכן הוסף את האפשרויות שברצונך להגדיר:
[פליק8]
אורך קו מקסימלי = 100
התעלם = F401
בדוגמה זו, max-line-length = 100 אומר ל- Flake8 להנפיק אזהרות עבור כל שורה בקובצי קוד המקור שלך שאורכה עולה על 100 תווים. ignore = F401 אומר ל- Flake8 להתעלם משגיאות הקשורות לייבוא שאינו בשימוש.
אינך צריך להוסיף את האפשרויות הללו לקובץ תצורה מכיוון שאתה יכול לקרוא ציין אותן בשורת הפקודה כך:
flake8 --התעלם מ-E203 --max-line-length 100
שימוש בקובץ תצורה הוא הגישה הטובה ביותר מכיוון שאינך צריך לציין את אותן אפשרויות בכל פעם שאתה משתמש ב-flake8.
שימוש ב- Flake8 בקוד VS
אם אתה משתמש בקוד VS כדי לכתוב את אפליקציית Python שלך, אתה יכול להשתמש בסיומת flake8 כדי לרכך את קבצי Python שלך בזמן ההקלדה.
ראשית, עליך להתקין את התוסף flake8 משוק VS Code. לאחר מכן, כדי להגדיר את זה, פתח את הגדרות VS Code, ואז חפש "python.linting.flake8Enabled" והפעל linting עם flake8.
כעת אתה אמור לראות שגיאות ואזהרות מסומנות בקוד שלך בשורה מתפתלת בזמן שאתה כותב אותו. ריחוף מעל הטקסט המודגש יציג הודעה שמסבירה את הבעיה ומציעה תיקונים אפשריים.
אַחֵר פייתון IDEs כגון Pycharm יש גם הרחבות Flake8 שאתה יכול להגדיר כדי לפשט את תהליך המוך.
למה כדאי להשתמש ב-Linter?
בעת כתיבת קוד, אתה עלול להציג שגיאות וחוסר עקביות שגורמות ליישום שלך להיכשל או לבעיות ביצועים. linter כמו Flake8 מאפשר לך לתפוס כמה מהבעיות הללו מראש, ועוזר לך לכתוב קוד נקי יותר. שילובו בזרימת העבודה בפיתוח שלכם חשוב מאוד.
אתה יכול לעשות זאת על ידי שימוש בו בתוך עורך הטקסט או ה-IDE ושילובו ברצף שלך צינור אינטגרציה כדי לבדוק אוטומטית את הקוד שלך עבור שגיאות ואזהרות לפני שאתה ממזג אותו עם שלך סניף ראשי.