פייתון: שימוש ב-pyenv כדי להכין סביבת עבודה מסודרת

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

באופן אישי ומקצועי אני משתמש לא מעט בפייתון אבל איכשהו לא כתבתי יותר מדי עליה בבלוג שלי. אני מפרסם פה מדי שבוע כבר משנת… [בודק בניירות] שנת 2008 😱. זה המון זמן, ואיכשהו לא כתבתי יותר מדי על פייתון, אז אני חושב שהגיע הזמן לכתוב עליה ונתחיל עם pyenv. שזו ה-דרך, לפי דעתי, להתחיל ולבנות סביבת עבודה יציבה בפייתון. אם יהיה עניין, אני אוסיף עוד כמה פוסטים והסברים על פייתון וכרגיל נתחיל על סביבת עבודה. כי סביבת עבודה טובה היא בסיס לכל תכנות טוב.

אז מה זה pyenv? בעוד שאין שום בעיה להתקין פייתון ישירות על מערכת ההפעלה, כשמתחילים לפתח באמת ויוצאים קצת מעולם ה-Hello World מגלים את העולם המופלא של גרסאות הפייתון שיכולות להשתנות עם שינויים משמעותיים של פיצ׳רים. וכמובן שדרוגים של גרסאות. יש פרוייקטים שצריכים לרוץ בפייתון גרסה 3.8 ויש כאלו שהכי טוב להם הוא פייתון גרסה 3.9. איך מג׳נגלים בין הגרסאות השונות? עם pyenv שדומה קונספטואלית מאוד ל-nvm של Node.js.

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

brew update
brew install pyenv

אחרי שהסקריפט רץ, אני יכול לוודא את ההתקנה באמצעות pyenv –version ולראות שאני מקבל מספר גרסה. מעולה. העבודה לא נגמרה – ישנם עוד הסברים על מה עושים אחרי ההתקנה שמופיעים בקישור של מדריך ההתקנה.

אני מצרף את ההסברים על Oh My Zsh, שזו הסביבה שלי (ואני ממליץ מאוד להשתמש בה).

השלב הבא הוא להוסיף את השורות האלו לקובץ ~/.zshrc. או באמצעות פתיחה שלו והוספה.

export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"  
eval "$(pyenv init -)"

או באמצעות הרצה של השורות האלו:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

חשוב לוודא שהן באמת הוספו ל-zshrc שלכם. אחרי כן נפעיל מחדש את Oh My Zsh באמצעות הפקודה omz reload.

שימוש

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

pyenv list

ולהתקין באמצעות

pyenv install 3.11.0

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

pyenv versions

אני יכול לראות איזה גרסאות יש לי. הפעילה תהיה מסומנת בכוכבית. בהתחלה זה יהיה ה-system עבורכם. אבל כדאי מאוד לבחור בגרסה אחרת. למשל ב-3.11.0. איך אני בוחר? באמצעות:

pyenv global 3.11.0

אחרי שאני בוחר בזו, אני יכול ללחוץ שוב על pyenv install ולראות שהפעם הכוכבית זזה לגרסה שלי. אם אני אריץ בטרמינל את הפקודה python –version אני אראה שהגרסה שיש לי ב-shell היא 3.11.0! אם אני אשנה את הגרסה אני אראה שהגרסה תשתנה אם אקליד שוב python –version.

➜  local pyenv versions  
  system
* 3.9.0 (set by /Users/barzik/.pyenv/version)
  3.11.0
➜  local python --version
Python 3.9.0
➜  local pyenv global 3.11.0
➜  local pyenv versions     
  system
  3.9.0
* 3.11.0 (set by /Users/barzik/.pyenv/version)
➜  local python --version   
Python 3.11.0
דוגמה לאיך pyenv אמור לעבוד

בדוגמה המאוד פשוטה הזו הראיתי איך משנים את גרסת הפייתון הגלובלית – כלומר זו שהמחשב המקומי משתמש. אבל אני יכול לשנות את הגרסה רק ל-shell באותו אופן עם הפקודה pyenv shell – שפשוט תשנה את גרסת הפייתון לטאב של הטרמינל. או עם הפקודה pyenv local לתיקיה ספציפית. אפילו שבתיקיה ספציפית או פרויקט ספציפי כדאי להשתמש ב-pipenv. שמאפשרת לנו לבנות סביבה וירטואלית לכל פרויקט.

בכל מקרה, גם אם מדובר בפרויקט קטן, גם אם אתם צריכים לכתוב איזה סקריפטון קטן לאיזה IoT – כדאי מאוד להשתמש ב-pyenv כדי להתקין פייתון במחשב שלכם.

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

פוסטים נוספים שכדאי לקרוא

ספריות ומודולים

מציאת PII באמצעות למידת מכונה

כך תגנו על משתמשים שלכם שמעלים מידע אישי רגיש כמו תעודות זהות באמצעות שירות אמאזוני.

גלילה לראש העמוד