לדלג לתוכן

6.1 קונספט הרצאה

ספריות כקונספט

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

מודולים מובנים

  • פייתון מגיע עם המון מודולים מובנים שאפשר פשוט להשתמש, בוא נראה כמה דוגמאות:

מודול math

  • מודול שמאפשר לנו לעשות פעולות מתמטיות מסובכות.
    import math
    
    result = math.sqrt(25)
    print(result)  # Output: 5.0
    
    angle = math.radians(45)
    print(math.sin(angle))  # Output: 0.7071067811865475
    

מודול random

  • מודול שמאפשר לנו לצור מספרים ראנדומלים.
    import random
    
    random_number = random.randint(1, 10)
    print(random_number)
    
    my_list = ['apple', 'banana', 'orange', 'grape']
    random_fruit = random.choice(my_list)
    print("Random Fruit:", random_fruit)
    
  • הפונקציה random.randint מביאה לנו מספר ראנדומלי
  • הפונקציה random.choice בוחרת איבר ראנדומלי ברשימה

מודולים חיצוניים

  • אנחנו יכולים להתקין על המחשב מודולים שאנשים מכל העולם כתבו באמצעות מנהל החבילות של פייתון pip
    • מה הוא מנהל חבילות? מנהל חבילות היא תוכנה שמאפשרת לנו להתקין בכמה קליקים פשוטים חבילה מהאינטרנט, במקרה שלנו החבילות הן קוד פייתון.
    • מה זה pip? פיפ הוא מנהל החבילות של פייתון, המנהל חבילות מתחבר לאתר מיוחד שנקרא "artifactory" ושולף ממנו את כל החבילות של פייתון, וכך מתקין לנו אותם על המחשב.

התקנת pip

  • בPyCharm, התוכנה pip מותקנת אוטומטית. ואפשר לגשת אלייה דרך הטרמינל של PyCharm באמצעות כתיבת הפקודה pip:
    Pasted image 20240401192102.png

  • אם אין לכם בPyCharm מותקן, לפני שאתם רצים להתקין pip בדקו בטרמינל האם יש לכם כבר pip מותקן
    Pasted image 20240401192236.png

  • לפעמים pip יכול להיות מותקן, פשוט לא נמצא בPath (מי שזוכר מההרצאות הראשונות של הקורס), תוכלו לנסות להוסיף אותו, ואפשר גם להריץ את pip באמצעות הפקודה הבאה: python -m pip -V
  • עדיין לא עובד לכם? כנראה אין לכם pip מותקן, ואפשר לעשות זאת מאוד בקלות: הריצו את הפקודה הבאה:
    python -m ensurepip --upgrade
  • עכשיו נסו להריץ את: python -m pip -V

שימוש בpip

  • הריצו pip -V כדי לקבל את הגרסת pip
  • הריצו pip -h כדי לראות איך להשתמש בpip
  • הריצו pip install black כדי להתקין את המודול black
  • הריצו pip uninstall black כדי להסיר את המודול שהתקנו קודם black
  • הריצו pip install black==2.0.0 או pip install black<2.0.0 כדי להתקין גרסאות ספציפיות של המודול black
  • הריצו pip -U install black כדי לעדכן את המדול black לגרסא הכי עדכנית שלו.
  • המון פעמים נראה פרויקטים של פייתון שמכילים רשימה של כל החבילות שצריכות להיות מותקנות כדי להריץ את הפרויקט, למשל כמו הקובץ הבא:
    requierments.txt
    requests
    black==2.0.0
    pathlib>1.0.0
    
  • אפשר להשתמש בפקודה pip install -r .\requierments.txt כדי לגרום לpip אוטומטית להתקין את כל הספריות.

בעיית חבילות

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

פתרון מועדף: סביבה וירטואלית - venv

  • סביבה וירטואלית או venv היא יוצרת לכל פרויקט פייתון שאנחנו מגדירים סביבה נקייה לחלוטין מספריות, שבה כל פרויקט יוכל להתקין רק את הספריות שהוא צריך כדי שהפרויקט ירוץ. PyCharm בצורה אוטמטית יוצר לנו venv לכל פרויקט.
  • מה אם אין לנו PyCharm? נתקין venv באמצעות pip install venv, ונריץ את הפקודה python -m venv .\venv בתוך התקייה של הפרויקט שלנו
  • כדי להתחבר לvenv שיצאנו, נריץ את הפקודה venv\bin\activate\.
  • עכשיו באותו טרמינל, נוכל להתקין ספריות לפרויקט שלנו, וכל פעם שנריץ את הפקודה python היא תקבל רק את ספריות שהתקנו בתוך הסביבה הוירטואלית.
  • כדי לצאת מהvenv נריץ venv\bin\deactivate\., תמיד נוכל לחזור לvenv באמצעות הרצת הפקודה venv\bin\activate\. בתוך התקייה של הפרויקט.

עוד פתרונות לבעית התקנה של חבילה:

  • הרצת הפקודה pip install your-package --no-cache-dir, פקודה זו תתקין את החבילה ואת כל החבילות הנדרשות מחדש מהתעלות מוחלטת מכל החבילות שכבר מותקנות על המחשב.
  • הרצת הפקודה pip install your-package --prefer-binary, לפעמים במקום להסתבך בהתקנת חבילה שלא רוצה להיות מותקנת, בגלל כל מיני חבילות שהיא תלוייה בה, אנחנו יכולים להשתמש בפקודה למעלה שמתקינה מהartifactory את החבילה לא כקוד אלה כקוד מקומפל, ולפעמים זה פשוט יכול לפתור לנו את הבעיה.