אחת הסיבות שגורמות למפתחים ולמדעני נתונים לבחור בפייתון כשפת פיתוח מובילה נעוצה בעובדה שמדובר באחת משפות הפיתוח הגמישות והעוצמתיות ביותר שיש. אחת מתכונות הגמישות של פייתון היא לאפשר יצירה של סביבת פיתוח וירטואלית בעבור כל פרוייקט בנפרד או כל מטרה שרק נרצה.

למה לי סביבה וירטואלית עכשיו? 👨‍🏫

סביבה וירטואלית היא אזור עבודה מבודד ונפרד בתוך סביבת הפייתון שמותקנת במחשב.
היא מספקת אפשרות לנהל התקנת חבילות, תלויות והגדרות ייחודיות לכל פרויקט, כך שהחבילות של פרויקט אחד לא ישפיעו או יתנגשו עם פרויקטים אחרים.
ניתן לדמות את הסביבה הוירטואלית להתקנה נפרדת לחלוטין שדרכה ניתן לכתוב קוד, לנהל פרוייקט, להתנסות ולפתח בבטחה. וכל זאתמ מבלי לשנות או לפגוע בהתקנה הגלובלית של פייתון במערכת.

נשמע נחמד! ובכל זאת, מה הם היתרונות בעבודה עם Virtual Environment?

  1. בידוד: סביבות וירטואליות מספקות בידוד לפרויקטים, ומונעות קונפליקטים בין תלות של פרויקטים שונים. מה שמותקן בסביבה אחת נשאר רק בה, ומאפשר פיתוח נקי ונטול התנגשויות.
  2. ניהול תלויות: ניהול התלויות הופך לפשוט. ניתן להגדיר את הגרסאות המדויקות של הספריות הדרושות לפרויקט, מה שמבטיח עקביות ויציבות שאין שני לה.
  3. ניידות פרויקטים: סביבות וירטואליות מקלות על שיתוף הקוד שלך עם אחרים. באמצעות הכללת קובץ requirements.txt שמפרט את התלויות של הפרויקט, ניתן לשחזר את אותה סביבה בקלות.
  4. התנסות: ניתן להתנסות בחופשיות בתוך סביבה וירטואלית, מתוך ידיעה שכל שינוי שתבצע לא ישפיע על התקנת הפייתון הכללית של המערכת.
  5. אבטחה: התקנת חבילות ברמה גלובלית מגדילה את משטח התקיפה של המערכת ועלולה לחשוף אותה לסיכונים. סביבה וירטואלית מבודדת את החבילות, כך שהן אינן יכולות לגשת לפרמטרים גלובליים או להשפיע על המערכת כולה. זה מאפשר לפתח ולהתנסות בצורה בטוחה מבלי לסכן את יציבות המערכת או פרויקטים אחרים.
  6. הסרה פשוטה: רוצים לנקות את המחשב? משהו התפקשש והפסיק לעבוד?
    שום בעיה. פשוט מוחקים את תיקיית הסביבה וממשיכים הלאה. כל כך פשוט 😇

נשמע מעולה, איך מתחילים מכאן? 🤖

שלב 1 - בדיקת גירסה
אני יוצא מנקודת הנחה שפייתון כבר מותקנת על גבי המחשב.
במעבר בין מערכות הפעלה שונות (Windows, MacOS, Linux) , הפניה לפייתון עשויה להשתנות.
תחילה נוודא את גירסאת פייתון המותקנת על גבי המחשב, פתחו את CMD או טרמינל וכתבו את הפקודה הבאה:

python - version

משתמשי לינוקס? עליכם לפנות לפייתון עם מספר גירסאת האב:

python3 - version

שלב 2 - יצירת תקיית פרוייקט
אחרי שוידאנו את הגירסא יהיה עלינו לייצר את התיקייה שעל גביה תרוץ הסביבה השלב הזה מיועד למשתמשי Windows בלבד.

mkdir development #יצירת התיקייה
cd development # גישה לתיקייה

שלב 3 - הקמה
כעת נייצר את המכונה הוירטואלית.
משתמשי חלונות: בתוך התיקייה שיצרנו (וניגשנו אליה בפסקה הוקדמת) נריץ את הפקודה:

python -m venv {ENV_NAME}

משתמשי לינוקס ומק, אין צורך לייצר תיקייה מיוחדת היות והפקודה עצמה מייצרת את תיקיית הסביבהב הוירטואלית. ולכן, נווטו לתיקייה אשר בתוכה אתם מעוניינים להקים את הסביבה והריצו את הפקודה הבאה:

python3.12 -m venv {ENV_NAME}

החליפו את {ENV_NAME} עם השם שתרצו לתת לסביבה.

שלב 4- הפעלת הסביבה
כעת נפעיל את הסביבה, בכדי לעשות זאת נצטרך להריץ את הפקודה הבאה.
שימו לב שיש הבדל בפקודה בין משתמשי חלונות למשתמשי לינוקס ו-MacOS.

משתמשי חלונות:

{ENV_NAME}\Scripts\activate

משתמשי לינוקס ומק:

source {ENV_NAME}/bin/activate

חשוב לא לשכוח להחליף את {ENV_NAME} עם שם הסביבה שבחרתם.

שלב 5- התקנת תלויות
כעת אחרי שהתקנו את הסביבה, הפעלנו אותה ודאי נרצה להתקין תלויות ברמת הסביבה.
מאוד פשוט , כן ? פשוט נריץ את הפקודה pip install:

pip install pandas jupyter-lab tensorflow etc..

חשוב לזכור שההתקנה של התלויות מבוצעת ברמת סביבה וירטואלית בלבד ולא ברמה רחבה של המערכת- מה שמקטין את משטח התקיפה ומגביל את היכולת של אותן תלויות להזיק למערכת במקרה שהתקנו חבילה פושעת.

כיבוי הסביבה הוירטואלית
על ידי הרצה של פקודת exit או deactivate נוכל לכבות את הסביבה.

מחיקת הסביבה
מכירים את המשפט “הפסולת לסל וחסל?” אז בדיוק ככה.
מוחקים את התיקייה וממשיכים הלאה בחיים. זה הכל.

לסיכום

יצירת סביבה וירטואלית באמצעות המודול המובנה venv של פייתון מספקת יתרונות רבים ומשמעותיים למפתחים. היא מאפשרת בידוד מלא של הפרויקט, ניהול מדויק של תלות, שיפור שיתוף הפעולה, ומתן מרחב בטוח לניסויים – וכל זאת תוך שמירה על רמת אבטחה גבוהה יותר. עדיין מתקינים תלויות ברמת המערכת? אחרי קריאת המאמר הזה, כדאי מאוד לשקול להפסיק עם ההרגל הזה ולעבור לעבודה נכונה ומסודרת עם סביבות וירטואליות.