Nuitka הוא פרויקט Python שנכתב ב-Python שמרכיב את Python ל-C, כלומר, מהדר Python המסוגל ליצור קובץ בינארי עצמאי שלא דרש את זמן הריצה של Python במערכת שבה הוא מבוצע.
נויטקה בולט בשמירה, במידת האפשר, על תאימות מרבית למערכת האקולוגית של Python, מה שמבטיח שספריות צד שלישי כמו NumPy עובדות בצורה אמינה. בנוסף, Nuitka שואפת לשפר את הביצועים של תוכניות Python הידור בכל מקום אפשרי, תוך שמירה על תאימות כוללת חזקה.
עם זאת, חשוב לציין ששיפורי ביצועים אינם מובטחים ויכולים להשתנות במידה ניכרת בהתאם לעומס העבודה. ייתכן שחלק מהתוכניות לא יחוו שיפורים משמעותיים בביצועים. לכן, ככלל, מומלץ לא להסתמך על נויטקה כפתרון משפר ביצועים, אלא ככלי אריזה אמין.
Nuitka תומך בגרסאות Python 2.6, 2.7 או 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11 ויש לו תמיכה עבור Linux, FreeBSD, NetBSD, macOS X ו-Windows, כמו גם תמיכה בארכיטקטורות x86, x86_am) (64d) ו-ARM.
מה חדש ב-Nuitka 2.0?
נכון לעכשיו, נויטקה נמצא בגרסתו 2.0 שהושק לאחרונה וזה מדגיש שהם שילבו שיפורים ופונקציונליות שונים בתצורת החבילה, מה שמאפשר לך לבצע שאילתות על ערכים של חבילות מותקנות במהלך ההידור ולהשתמש בערכים אלה כדי להגדיר את הקצה העורפי. תמיכה במשתנים בתצורה מפשטת משימות סטנדרטיות רבות שבעבר דרשו חיבור תוספים.
בנוסף, זה נוסף תמיכה בפרמטרים המוגדרים על ידי המשתמש כדי להשפיע על התצורה של כל חבילה. ניתן לקרוא פרמטרים אלה באמצעות הפונקציה החדשה get_parameter ולשמש לבחירת התנהגות המודולים. לדוגמה, אפשר להגדיר פרמטר לביטול Numba JIT או Torch JIT.
האפשרות "הוכנסה–include-onefile-external-data» כדי לציין תבניות של קבצי נתונים המוגדרות בתצורה אך חייבות להיות מסופקות בנפרד מקובץ ההפעלה כאשר הם מקופלים במצב onefile. כמו כן, האפשרות "-cf-הגנה» כדי להגדיר את מצב ההגנה של CFI (Control Flow Integrity) ב-GCC, המונע הפרות של צו הביצוע הרגיל (זרימת בקרה).
של שינויים אחרים הבולטים:
- נוספה תמיכה בהחלטות מודול, המאפשרת למשתמשים להשפיע על תצורת Nuitka על בסיס חבילה.
- נוספה תמיכה בתצורות חבילות Nuitka, מה שמקל על שאילתות על ערכי חבילות מותקנות.
- זיהוי של קובצי הפעלה מהודרים גדולים מדי כדי למנוע הפרות של מגבלת גודל.
- שיפור דיווח ויכולת לבנות יחסי ציבור עם שינויים ב-Nuitka-Watch.
- יושם ניתוח סוג לולאה, אשר ישמש בעתיד ליישום אופטימיזציות סלקטיביות.
- נוספו אופטימיזציות כדי להאיץ את העבודה עם משתנים לא משותפים ומשתנים בריחה.
- דרך לעקיפת פונקציות פרטיות כמו חריצי Qt שלא היו להם שמות מעוותים.
- תקן זיהוי מנות pip בעת שימוש ב-Nuitka.
- שיפורים במנתח הטעינה העצלה עבור pydantic.
- נוספו קבצי נתונים עבור חבילות שונות, כגון pyocd ו-cmsis_pack_manager.
- תיקונים לטיפול נכון במפרטים מורחבים בזמן ריצה.
- פתרון למניעת כשלים במהלך ביצוע שיטות מסוימות.
- שיפורים בהכללת חבילות משורת הפקודה.
- פתרונות ספציפיים לפלטפורמות כמו אנדרואיד, ווינדוס ודביאן.
- תאימות משופרת לגרסאות ומערכות הפעלה שונות של Python.
סוף סוף אם אתה מעוניין לדעת יותר על זה, אתה יכול לבדוק את הפרטים בקישור הבא.
כיצד להתקין את Nuitka על לינוקס?
למעוניינים להתקין את Nuitka על המערכת שלהם, כדאי לדעת שההתקנה פשוטה, רק צריך להתקין את Python ואת מערכת ניהול החבילות pip.
כדי להתקין את Nuitka פשוט הפעל את הפקודה הבאה:
pip install nuitka
לגבי השימוש במהדר זה, תוכל לעיין במדריך למשתמש בכתובת הקישור הבא.