באופן אישי ומקצועי אני משתמש לא מעט בפייתון אבל איכשהו לא כתבתי יותר מדי עליה בבלוג שלי. אני מפרסם פה מדי שבוע כבר משנת… [בודק בניירות] שנת 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.
בדוגמה המאוד פשוטה הזו הראיתי איך משנים את גרסת הפייתון הגלובלית – כלומר זו שהמחשב המקומי משתמש. אבל אני יכול לשנות את הגרסה רק ל-shell באותו אופן עם הפקודה pyenv shell – שפשוט תשנה את גרסת הפייתון לטאב של הטרמינל. או עם הפקודה pyenv local לתיקיה ספציפית. אפילו שבתיקיה ספציפית או פרויקט ספציפי כדאי להשתמש ב-pipenv. שמאפשרת לנו לבנות סביבה וירטואלית לכל פרויקט.
בכל מקרה, גם אם מדובר בפרויקט קטן, גם אם אתם צריכים לכתוב איזה סקריפטון קטן לאיזה IoT – כדאי מאוד להשתמש ב-pyenv כדי להתקין פייתון במחשב שלכם.
השלב הבא, אחרי שאנו יודעים לקבוע איזו גרסת פייתון תהיה אצלנו, זה להבין איך pip עובד ואת זה נלמד במאמר על pip.
12 תגובות
בס"ד
שלום, שאלה: אם רוצים איזה גרסה של פייתון למשהו מאד ספציפי, למה לא להוריד Python Embedded ולהתקין שם את כל מה שצריך לפרויקט ולעבוד דרך זה?
אני מניח שהיתרון של השיטה שכתבת עליה הוא יותר לגבי הפיתוח
תודה על המאמר.
טייפו קטן:
pyenv –version
צריך להיות
pyenv –version
נו, התכוונתי לשני מקפים, אוטוקורקט מעצבן…
היי רן
על איזו סביבת עבודה אתה ממליץ שמדובר על פייתון?
vscode, משהו אחר?
מאוד שימושי. אבל פוגע בביצועים.
עדיף להריץ על מכונה וירטואלית או קונטיינר נפרד
איך עוקפים חסימת נתיב?
יש עניין – בבקשה, הוסף עוד תכנים כאלה.
שלום אני מתעניין בלימוד פייתון יש את הספר של ברק גונן ושם הוא אומר להשתמש בגירסה 3.8
לי במחשב יש גירסה 3.7.3
האם יש הבדלים משמעותיים בין הגרסאות ?
או שאני יכול להשתמש בגירסה 3.7.3
תודה
היי רן!
תודה רבה על הזמן שאתה מקדיש לכתיבת המדריכים, אני מאוד מעריך את זה.
יש טעות קטנה, הפקודה הנכונה היא: `pyenv install –list`, לא `pyenv list`.
בנוסף, אני ממליץ לך לכתוב גם על poetry לפקג'ינג וניהול הדפנדנסיז של הפרויקט שלך.
אסף.
שלום,
תודה על המדריכים. יש עניין במדריכי פייתון.
שאלה: איך אפשר להוסיף לתוכנית "תמונה" של הסביבה (באיזו גירסה של פייתון וכל ספריית עזר היא נוצרה), כדי שאפשר יהיה לדעת בהמשך על איזה גירסת רכיבים היא עובדת?
תודה.
הי אליאנה! כן, יש במאמר על פואטרי למשל (יש קישור בפוסט) הסבר על זה בדיוק. אני משתמש בפואטרי מזה זמן ומאד נהנה.
תודה רבה על התשובה המהירה 🙂
חג שמח.