Dariush Tasdighi - داریوش تصدیقی
Dariush Tasdighi - داریوش تصدیقی
خواندن ۴ دقیقه·۶ ساعت پیش

آموزش نصب Package ها (pip) و Virtual Environment در پایتون

آموزش نصب Package ها (pip) و Virtual Environment در پایتون
آموزش نصب Package ها (pip) و Virtual Environment در پایتون


ممکن است که در یک سورس‌کد پایتون، با دستور ذیل مواجه شویم:

import X

ممکن است که برای راه‌اندازی دستور فوق، یکی از دستورات ذیل مورد استفاده قرار گیرد:

$ pip install X [OR] $ pip install Y

پس نباید ذهن‌مان شرطی شود!

مثال

import pygame $ pip install pygame import cv2 $ pip install opencv.python

به طور کلی،

با استفاده از دستور ذیل، در صورتی که Package مورد نظر، وجود نداشته باشد، Package نصب می‌شود، و در صورتی که قبلا نسخه‌ای از آن نصب شده باشد، به روز رسانی می‌شود:

$ pip install X --> 1.2 --> 1.8 $ pip install -U X --> 1.2 --> 2.3 (-U: Upgrade)

هر وقت بخواهیم از دستور pip استفاده کرده، و این دستور به خطا برخورد کند، می‌توانیم یکی از دستورات ذیل را استفاده نماییم:

$ pip3 install X [OR] $ python -m pip install X [OR] $ python3 -m pip install X [OR] $ python3 -m pip3 install X

با استفاده از دستور ذیل، در صورتی که Package مورد نظر، وجود نداشته باشد، Package نصب می‌شود، و در صورتی که قبلا نسخه‌ای از آن نصب شده باشد، Upgrade می‌شود:

$ pip install --upgrade X [OR] $ pip install -U X

برای این‌که ببینیم که چه Package هایی نصب شده‌اند، از دستور ذیل استفاده می‌کنیم:

$ pip list

زمانی که بخواهیم، اطلاعات کاملی از Package نصب شده مشاهده نماییم، از دستور ذیل استفاده می‌کنیم:

$ pip show X

و اما، مشکل اصلی:

فرض کنید که برای اجرای برنامه app1.py، به Packageای به نام X و نسخه ۱.۱ نیاز داریم.

بعد از مدتی،

فرض کنید که برای اجرای برنامه دیگری app2.py، به همان Package، به نام X، ولی به نسخه ۲ آن نیاز داریم.

در این حالت، اگر Package را به نسخه ۲، اصطلاحا Upgrade نماییم، هر چند که برنامه app2.py، به درستی کار می‌کند، ولی به احتمال خیلی زیاد، برنامه app1.py دیگر کار نخواهد کرد! پس به همین دلیل (همان‌طور که در ادامه به آن اشاره خواهیم کرد) به جای این‌که Package ها را در سطح سیستم خود نصب نماییم، در همان‌جایی که پروژه (فایل) ما قرار دارد، اقدام به ایجاد یک Virtual Environment کرده، و Package های مورد نیاز خود را در همان‌جا و در همان Virtual Environment نصب می‌کنیم.

برای نصب یک Package، با یک Version قدیمی و دلخواه، از دستور ذیل استفاده می‌کنیم:

$ pip install numpy==1.26.4

با استفاده از دستور ذیل، می‌توانیم یک Package نصب شده (مثلا به نام X) را Uninstall نماییم:

$ pip uninstall X

با استفاده از دستور ذیل، می‌توانیم یک Package نصب شده (مثلا به نام X) را Uninstall نماییم، به گونه‌ای که در زمان Uninstall شدن، از ما سوالی پرسیده نشود:

$ pip uninstall -y X [OR] $ pip uninstall X -y

حل مشکل اصلی! با استفاده از Virtual Environment

به دلیل وجود همین مشکلات، مفهومی در پایتون اضافه شده است، به نام Virtual Environment، که به طور خلاصه آن را venv می‌نامند.

$ python -m venv [Some_Name] --> In Windows $ python3 -m venv [Some_Name] --> In Linux $ python -m venv .venv How to activate virtual environment: $ .\.venv\Scripts\activate --> In Windows $ source ./.venv/bin/activate --> In Linux (.venv) $ pip list

کارمان را انجام می‌دهیم! سورس‌کد(هایمان) می‌نویسیم / ویرایش می‌کنیم / اجرا می‌کنیم / ...

کارمان که تمام شد!

(.venv) $ deactivate

یک سناریوی دیگر:

$ python -m venv .venv $ .\.venv\Scripts\activate (.venv) $ pip list (.venv) $ pip install -U pip [OR] (.venv) $ python -m pip install -U pip (.venv) $ pip list (.venv) $ pip install -U numpy (.venv) $ pip install -U pypdf (.venv) $ pip install -U requests Related to below Packages: · certifi · charset-normalizer · idna · urllib3

نکته: ممکن است که با نصب یک Package، چندین Package دیگر نیز نصب گردد!

برنامه را چک می‌کنیم! اگر برنامه به درستی کار کرد و هیچ مشکلی نداشت!

(.venv) $ pip freeze (.venv) $ pip freeze > [Some_Text_File] (.venv) $ pip freeze > requirements.txt (.venv) $ deactivate

با استفاده از دستور ذیل، تمام Package‌ هایی که در فایل Requirements.txt وجود دارند را به ترتیب (و با توجه به نسخه آن‌ها) نصب می‌کند:

(.venv) $ pip install -r .\requirements.txt

برای Uninstall کردن کلیه Package هایی که در داخل Virtual Environment جاری قرار دارند، از دستورات ذیل استفاده می‌کنیم:

(.venv) $ pip freeze > requirements.txt (.venv) $ pip uninstall -r requirements.txt -y

برای Uninstall کردن کلیه Package هایی که بر روی سیستم ما نصب شده است، از دستورات ذیل استفاده می‌کنیم:

$ pip freeze > requirements.txt $ pip uninstall -r requirements.txt -y


pipvenvپایتون
محقق، معمار، مشاور، مدرس و برنامه‌نویس حوزه فن‌آوری اطلاعات - تحلیل‌گر و فعال بازار بورس و سرمایه
شاید از این پست‌ها خوشتان بیاید