ניהול חבילות וסביבות בפייתון - pipenv
בפוסט הקודם דיברתי על היתרון של סביבה וירטואלית בפייתון והצגתי את הכלי venv. בשנת 2018 נוצר הכלי pipenv שמטרתו לפתור בעיות נפוצות ב pip, ב venv ובעבודה עם קובץ ה requirements עליו דיברנו בפוסט הקודם. הפוסט הבא מדבר על הכלי pipenv, משווה בינו לבין venv ו pip, ומציג כיצד pipenv פותר לנו חלק מהבעיות שלנו. מה הבעיה עם requirements.txt ואיך pipenv פותר לנו אותה? אז דיברנו על היכולות המרשימות שנותן קובץ ה requirements ובאיזו קלות ניתן למלא אותו עם pip freeze. אבל לצערנו הוא דורש לא מעט התעסקות ידנית בפרוייקטים מתקדמים יותר. דמיינו את המקרה הבא: אנחנו מתקינים את הספריה requests בגרסתה האחרונה (2.24.0) וכשאנחנו מתקינים אותה מותקנת לנו באופן אוטומטי גם תת-תלות (sub-dependency) בשם urllib3 בגרסה 1.25.11. עכשיו בואו נניח שהתעדכנה גרסה של התגלתה פרצת אבטחה ב urllib3 והם שחררו את גרסה 1.25.12. כעת, הקוד שלנו בפרודקשן רץ מול הגרסה הישנה. עלינו לעדכן את הגרסה כמה שיותר מהר. הבעיה היא שאת זאת נצטרך לעשות באופן ידני משום שקובץ ה requirements כובל אותנו לגרסה ספציפית אם מילאנו אותו עם pip freeze. ק...