مدیریت وابستگی‌ها در پایتون: راهنمای استفاده از pip و virtualenv

فهرست مطالب

“`html





مدیریت وابستگی‌ها در پایتون: راهنمای استفاده از pip و virtualenv



مدیریت وابستگی‌ها در پایتون: راهنمای استفاده از pip و virtualenv

در این راهنمای جامع، به بررسی اهمیت مدیریت وابستگی‌ها در پروژه‌های پایتون و نحوه استفاده از ابزارهای pip و virtualenv برای حل این چالش‌ها می‌پردازیم. این مقاله برای توسعه‌دهندگان پایتون در تمام سطوح، از مبتدی تا پیشرفته، مفید خواهد بود.

چرا مدیریت وابستگی‌ها در پایتون مهم است؟

در دنیای توسعه نرم‌افزار، به ندرت پیش می‌آید که یک پروژه به طور کامل مستقل از کتابخانه‌ها و پکیج‌های خارجی باشد. این کتابخانه‌ها، که به آن‌ها وابستگی (Dependency) می‌گوییم، قابلیت‌های از پیش آماده‌ای را در اختیار ما قرار می‌دهند و از نوشتن کدهای تکراری جلوگیری می‌کنند. با این حال، استفاده از وابستگی‌ها چالش‌هایی را نیز به همراه دارد که نیازمند مدیریت صحیح است.

تصور کنید که شما در حال کار بر روی چندین پروژه پایتون هستید. هر پروژه ممکن است به نسخه‌های مختلفی از یک کتابخانه خاص نیاز داشته باشد. برای مثال، پروژه A به نسخه 1.0 کتابخانه X و پروژه B به نسخه 2.0 همان کتابخانه X نیاز دارد. اگر تمام کتابخانه‌ها به صورت سراسری (Globally) بر روی سیستم نصب شوند، تداخل نسخه‌ها (Version Conflicts) اجتناب‌ناپذیر خواهد بود. این تداخل می‌تواند منجر به رفتارهای غیرقابل پیش‌بینی و از کار افتادن پروژه‌ها شود.

علاوه بر این، مدیریت وابستگی‌ها به دلایل زیر نیز حائز اهمیت است:

  • تضمین سازگاری: با مشخص کردن نسخه‌های دقیق وابستگی‌ها، اطمینان حاصل می‌کنید که پروژه شما در محیط‌های مختلف (مثلاً سیستم توسعه، سیستم تست و سیستم تولید) به درستی کار خواهد کرد.
  • تسهیل همکاری: با استفاده از فایل‌های requirements.txt (که در ادامه توضیح داده می‌شود)، می‌توانید لیست وابستگی‌های پروژه خود را به راحتی با سایر توسعه‌دهندگان به اشتراک بگذارید.
  • بهبود امنیت: با به‌روز نگه داشتن وابستگی‌ها، می‌توانید آسیب‌پذیری‌های امنیتی شناخته شده را برطرف کنید.
  • ایزوله کردن پروژه‌ها: هر پروژه می‌تواند وابستگی‌های خاص خود را داشته باشد، بدون اینکه با وابستگی‌های سایر پروژه‌ها تداخلی ایجاد شود.

به طور خلاصه، مدیریت صحیح وابستگی‌ها یک جزء حیاتی از فرآیند توسعه نرم‌افزار مدرن است که به شما کمک می‌کند پروژه‌های پایدارتر، قابل اعتمادتر و قابل نگهداری‌تری ایجاد کنید.

آشنایی با pip: مدیر بسته پایتون

pip (Package Installer for Python) یک مدیر بسته پیش‌فرض برای پایتون است که برای نصب، ارتقا و حذف پکیج‌ها و کتابخانه‌های پایتون استفاده می‌شود. pip به طور معمول همراه با پایتون نصب می‌شود، اما در صورت عدم وجود می‌توانید آن را به سادگی نصب کنید.

نصب pip

اگر pip بر روی سیستم شما نصب نیست، می‌توانید آن را با استفاده از دستور زیر نصب کنید (این دستور معمولاً برای سیستم‌عامل‌های لینوکس و مک‌اواس کار می‌کند):

sudo apt update
 sudo apt install python3-pip
 

برای ویندوز، معمولاً pip در هنگام نصب پایتون انتخاب می‌شود. اگر این گزینه را انتخاب نکرده‌اید، می‌توانید از طریق دانلود و اجرای فایل get-pip.py از وب‌سایت رسمی pip اقدام کنید.

دستورات اصلی pip

pip دستورات مختلفی را برای مدیریت پکیج‌ها ارائه می‌دهد. در اینجا به مهم‌ترین آن‌ها اشاره می‌کنیم:

  • نصب یک پکیج: برای نصب یک پکیج خاص، از دستور pip install استفاده کنید. برای مثال، برای نصب کتابخانه requests، دستور زیر را اجرا کنید:
  • pip install requests
      
  • نصب یک پکیج با نسخه خاص: برای نصب یک نسخه خاص از یک پکیج، می‌توانید از عملگر == استفاده کنید. برای مثال، برای نصب نسخه 2.26.0 کتابخانه requests، دستور زیر را اجرا کنید:
  • pip install requests==2.26.0
      
  • به‌روزرسانی یک پکیج: برای به‌روزرسانی یک پکیج به آخرین نسخه، از دستور pip install --upgrade استفاده کنید. برای مثال، برای به‌روزرسانی کتابخانه requests، دستور زیر را اجرا کنید:
  • pip install --upgrade requests
      
  • حذف یک پکیج: برای حذف یک پکیج، از دستور pip uninstall استفاده کنید. برای مثال، برای حذف کتابخانه requests، دستور زیر را اجرا کنید:
  • pip uninstall requests
      
  • نمایش لیست پکیج‌های نصب شده: برای مشاهده لیست تمام پکیج‌های نصب شده بر روی سیستم، از دستور pip list استفاده کنید:
  • pip list
      
  • نمایش اطلاعات یک پکیج: برای مشاهده اطلاعات مربوط به یک پکیج خاص (مانند نسخه، نویسنده و آدرس وب‌سایت)، از دستور pip show استفاده کنید. برای مثال، برای نمایش اطلاعات کتابخانه requests، دستور زیر را اجرا کنید:
  • pip show requests
      

فایل requirements.txt

requirements.txt یک فایل متنی است که لیست تمام وابستگی‌های یک پروژه پایتون را به همراه نسخه‌های آن‌ها مشخص می‌کند. این فایل برای تسهیل نصب و مدیریت وابستگی‌ها در محیط‌های مختلف استفاده می‌شود.

ایجاد فایل requirements.txt: برای ایجاد فایل requirements.txt، می‌توانید از دستور زیر استفاده کنید:

pip freeze > requirements.txt
  

این دستور لیستی از تمام پکیج‌های نصب شده در محیط فعلی را به همراه نسخه‌های آن‌ها در فایل requirements.txt ذخیره می‌کند.

نصب وابستگی‌ها از فایل requirements.txt: برای نصب تمام وابستگی‌های مشخص شده در فایل requirements.txt، از دستور زیر استفاده کنید:

pip install -r requirements.txt
  

این دستور تمام پکیج‌های موجود در فایل requirements.txt را با نسخه‌های مشخص شده نصب می‌کند.

Virtualenv: ایجاد محیط‌های مجازی پایتون

virtualenv ابزاری است برای ایجاد محیط‌های مجازی ایزوله شده پایتون. همانطور که قبلاً اشاره شد، استفاده از وابستگی‌های مختلف با نسخه‌های متفاوت در پروژه‌های مختلف می‌تواند منجر به تداخل نسخه‌ها شود. virtualenv با ایجاد یک محیط ایزوله برای هر پروژه، این مشکل را حل می‌کند. هر محیط مجازی دارای یک کپی جداگانه از پایتون و تمام پکیج‌های نصب شده است، بنابراین پروژه‌ها می‌توانند بدون تداخل با یکدیگر از وابستگی‌های خاص خود استفاده کنند.

نصب virtualenv

برای نصب virtualenv، از دستور زیر استفاده کنید:

pip install virtualenv
  

ایجاد یک محیط مجازی

برای ایجاد یک محیط مجازی، از دستور virtualenv به همراه نام دلخواه برای محیط مجازی استفاده کنید. برای مثال، برای ایجاد یک محیط مجازی به نام myenv، دستور زیر را اجرا کنید:

virtualenv myenv
  

این دستور یک پوشه جدید به نام myenv ایجاد می‌کند که حاوی فایل‌های لازم برای محیط مجازی است.

فعال‌سازی محیط مجازی

قبل از استفاده از محیط مجازی، باید آن را فعال کنید. دستور فعال‌سازی بسته به سیستم‌عامل شما متفاوت است:

  • لینوکس و مک‌اواس:
  • source myenv/bin/activate
      
  • ویندوز:
  • myenv\Scripts\activate
      

پس از فعال‌سازی محیط مجازی، نام محیط در ابتدای خط فرمان شما ظاهر می‌شود (مثلاً (myenv)). این نشان می‌دهد که شما در حال کار در محیط مجازی هستید.

غیرفعال‌سازی محیط مجازی

برای غیرفعال‌سازی محیط مجازی، از دستور deactivate استفاده کنید:

deactivate
  

پس از غیرفعال‌سازی، نام محیط از خط فرمان شما حذف می‌شود.

کار با pip در محیط مجازی

هنگامی که یک محیط مجازی فعال است، تمام دستورات pip بر روی آن محیط اعمال می‌شوند. این بدان معناست که پکیج‌هایی که نصب می‌کنید، فقط در آن محیط مجازی نصب می‌شوند و بر روی محیط سراسری سیستم تأثیری ندارند.

به عنوان مثال، فرض کنید شما محیط مجازی myenv را فعال کرده‌اید و می‌خواهید کتابخانه numpy را نصب کنید. دستور زیر را اجرا کنید:

pip install numpy
  

این دستور کتابخانه numpy را فقط در محیط مجازی myenv نصب می‌کند. اگر محیط مجازی را غیرفعال کنید و دستور pip list را اجرا کنید، numpy در لیست پکیج‌های نصب شده نشان داده نخواهد شد.

Virtualenvwrapper: ابزاری برای مدیریت آسان‌تر محیط‌های مجازی

virtualenvwrapper یک افزونه برای virtualenv است که مدیریت محیط‌های مجازی را آسان‌تر می‌کند. این ابزار دستوراتی را برای ایجاد، حذف، کپی و جابجایی بین محیط‌های مجازی فراهم می‌کند.

نصب virtualenvwrapper

برای نصب virtualenvwrapper، از دستور زیر استفاده کنید:

pip install virtualenvwrapper
  

نکته: در سیستم‌عامل‌های ویندوز، باید virtualenvwrapper-win را نصب کنید:

pip install virtualenvwrapper-win
  

تنظیمات virtualenvwrapper

پس از نصب virtualenvwrapper، باید آن را پیکربندی کنید. این پیکربندی بسته به سیستم‌عامل شما متفاوت است.

  • لینوکس و مک‌اواس:
  • ابتدا باید محل ذخیره‌سازی محیط‌های مجازی را مشخص کنید. این کار را می‌توانید با تنظیم متغیر محیطی WORKON_HOME انجام دهید. برای مثال، می‌توانید این متغیر را در فایل .bashrc یا .zshrc خود اضافه کنید:

    export WORKON_HOME=~/.virtualenvs
      

    سپس، باید اسکریپت virtualenvwrapper.sh را در فایل .bashrc یا .zshrc خود منبع (Source) کنید:

    source /usr/local/bin/virtualenvwrapper.sh
      

    نکته: ممکن است مسیر اسکریپت virtualenvwrapper.sh در سیستم شما متفاوت باشد. برای پیدا کردن مسیر صحیح، می‌توانید از دستور which virtualenvwrapper.sh استفاده کنید.

  • ویندوز:
  • متغیر محیطی WORKON_HOME به طور خودکار توسط virtualenvwrapper-win تنظیم می‌شود. با این حال، ممکن است لازم باشد که مسیر اسکریپت virtualenvwrapper.bat را به متغیر محیطی PATH اضافه کنید.

پس از انجام تنظیمات، باید ترمینال خود را مجدداً باز کنید تا تغییرات اعمال شوند.

دستورات اصلی virtualenvwrapper

virtualenvwrapper دستورات مختلفی را برای مدیریت محیط‌های مجازی ارائه می‌دهد. در اینجا به مهم‌ترین آن‌ها اشاره می‌کنیم:

  • ایجاد یک محیط مجازی: برای ایجاد یک محیط مجازی، از دستور mkvirtualenv استفاده کنید. برای مثال، برای ایجاد یک محیط مجازی به نام myenv، دستور زیر را اجرا کنید:
  • mkvirtualenv myenv
      
  • فعال‌سازی یک محیط مجازی: برای فعال‌سازی یک محیط مجازی، از دستور workon استفاده کنید. برای مثال، برای فعال‌سازی محیط مجازی myenv، دستور زیر را اجرا کنید:
  • workon myenv
      
  • غیرفعال‌سازی محیط مجازی: برای غیرفعال‌سازی محیط مجازی، از دستور deactivate استفاده کنید:
  • deactivate
      
  • حذف یک محیط مجازی: برای حذف یک محیط مجازی، از دستور rmvirtualenv استفاده کنید. برای مثال، برای حذف محیط مجازی myenv، دستور زیر را اجرا کنید:
  • rmvirtualenv myenv
      
  • کپی کردن یک محیط مجازی: برای کپی کردن یک محیط مجازی، از دستور cpvirtualenv استفاده کنید.

Poetry: یک ابزار مدرن برای مدیریت وابستگی‌ها و بسته‌بندی

Poetry یک ابزار مدیریت وابستگی و بسته‌بندی برای پروژه‌های پایتون است که هدف آن ساده‌سازی و بهبود فرآیند مدیریت وابستگی‌ها، بسته‌بندی و انتشار پروژه‌ها است. Poetry با استفاده از یک فایل پیکربندی واحد (pyproject.toml) تمام اطلاعات مربوط به پروژه (مانند وابستگی‌ها، نسخه‌ها، اسکریپت‌ها و غیره) را ذخیره می‌کند. این امر باعث می‌شود که مدیریت پروژه‌ها آسان‌تر و سازمان‌یافته‌تر شود.

نصب Poetry

برای نصب Poetry، می‌توانید از دستور زیر استفاده کنید:

curl -sSL https://install.python-poetry.org | python3 -
  

پس از نصب، باید مسیر Poetry را به متغیر محیطی PATH خود اضافه کنید. دستورالعمل‌های مربوط به این کار را می‌توانید در وب‌سایت رسمی Poetry پیدا کنید.

ایجاد یک پروژه Poetry

برای ایجاد یک پروژه جدید با استفاده از Poetry، از دستور poetry new استفاده کنید. برای مثال، برای ایجاد یک پروژه به نام myproject، دستور زیر را اجرا کنید:

poetry new myproject
  

این دستور یک پوشه جدید به نام myproject ایجاد می‌کند که حاوی فایل‌های زیر است:

  • pyproject.toml: فایل پیکربندی اصلی پروژه
  • README.md: فایل توضیحات پروژه
  • myproject/: پوشه حاوی کد منبع پروژه
  • tests/: پوشه حاوی تست‌های پروژه

مدیریت وابستگی‌ها با Poetry

برای افزودن یک وابستگی به پروژه، از دستور poetry add استفاده کنید. برای مثال، برای افزودن کتابخانه requests به پروژه، دستور زیر را اجرا کنید:

poetry add requests
  

Poetry به طور خودکار آخرین نسخه سازگار با پروژه را پیدا و نصب می‌کند و اطلاعات مربوط به آن را در فایل pyproject.toml و poetry.lock ذخیره می‌کند. فایل poetry.lock حاوی لیست دقیقی از نسخه‌های نصب شده است و برای اطمینان از تکرارپذیری (Reproducibility) پروژه استفاده می‌شود.

برای حذف یک وابستگی، از دستور poetry remove استفاده کنید. برای مثال، برای حذف کتابخانه requests از پروژه، دستور زیر را اجرا کنید:

poetry remove requests
  

برای نصب تمام وابستگی‌های مشخص شده در فایل pyproject.toml، از دستور poetry install استفاده کنید:

poetry install
  

اجرای اسکریپت‌ها با Poetry

Poetry به شما امکان می‌دهد اسکریپت‌های دلخواه را در فایل pyproject.toml تعریف کنید و آن‌ها را با استفاده از دستور poetry run اجرا کنید. برای مثال، فرض کنید شما یک اسکریپت به نام hello در فایل pyproject.toml تعریف کرده‌اید:

[tool.poetry.scripts]
 hello = "myproject.main:hello"
  

برای اجرای این اسکریپت، دستور زیر را اجرا کنید:

poetry run hello
  

بسته‌بندی و انتشار با Poetry

Poetry فرآیند بسته‌بندی و انتشار پروژه‌ها را نیز ساده می‌کند. برای ساخت یک بسته (Package) از پروژه، از دستور poetry build استفاده کنید:

poetry build
  

این دستور یک فایل .tar.gz و یک فایل .whl در پوشه dist/ ایجاد می‌کند که حاوی کد و اطلاعات پروژه هستند.

برای انتشار پروژه در PyPI (Python Package Index)، از دستور poetry publish استفاده کنید:

poetry publish
  

قبل از انتشار، باید یک حساب کاربری در PyPI ایجاد کنید و اعتبارنامه خود را در Poetry پیکربندی کنید.

Pipenv: ترکیبی از pip و virtualenv

Pipenv یک ابزار مدیریت وابستگی است که هدف آن ترکیب بهترین ویژگی‌های pip و virtualenv در یک ابزار واحد است. Pipenv به طور خودکار یک محیط مجازی برای هر پروژه ایجاد می‌کند و وابستگی‌ها را در فایل‌های Pipfile و Pipfile.lock مدیریت می‌کند.

نصب Pipenv

برای نصب Pipenv، از دستور زیر استفاده کنید:

pip install pipenv
  

ایجاد یک پروژه Pipenv

برای ایجاد یک پروژه جدید با استفاده از Pipenv، به پوشه پروژه خود بروید و دستور pipenv shell را اجرا کنید:

cd myproject
 pipenv shell
  

اگر یک محیط مجازی برای پروژه وجود نداشته باشد، Pipenv به طور خودکار یک محیط مجازی جدید ایجاد می‌کند و آن را فعال می‌کند. یک فایل Pipfile نیز در پوشه پروژه ایجاد می‌شود که حاوی اطلاعات مربوط به وابستگی‌های پروژه است.

مدیریت وابستگی‌ها با Pipenv

برای افزودن یک وابستگی به پروژه، از دستور pipenv install استفاده کنید. برای مثال، برای افزودن کتابخانه requests به پروژه، دستور زیر را اجرا کنید:

pipenv install requests
  

Pipenv کتابخانه requests را در محیط مجازی نصب می‌کند و اطلاعات مربوط به آن را در فایل Pipfile و Pipfile.lock ذخیره می‌کند. فایل Pipfile.lock حاوی لیست دقیقی از نسخه‌های نصب شده است و برای اطمینان از تکرارپذیری پروژه استفاده می‌شود.

برای حذف یک وابستگی، از دستور pipenv uninstall استفاده کنید. برای مثال، برای حذف کتابخانه requests از پروژه، دستور زیر را اجرا کنید:

pipenv uninstall requests
  

برای نصب تمام وابستگی‌های مشخص شده در فایل Pipfile، از دستور pipenv install استفاده کنید:

pipenv install
  

اجرای دستورات در محیط Pipenv

برای اجرای یک دستور در محیط مجازی Pipenv، از دستور pipenv run استفاده کنید. برای مثال، برای اجرای یک اسکریپت پایتون به نام main.py، دستور زیر را اجرا کنید:

pipenv run python main.py
  

ترک کردن محیط Pipenv

برای ترک کردن محیط مجازی Pipenv، از دستور exit استفاده کنید:

exit
  

بهترین روش‌ها برای مدیریت وابستگی‌ها در پایتون

در این بخش، به بررسی برخی از بهترین روش‌ها برای مدیریت وابستگی‌ها در پروژه‌های پایتون می‌پردازیم:

  • همیشه از محیط‌های مجازی استفاده کنید: استفاده از محیط‌های مجازی برای ایزوله کردن وابستگی‌های پروژه‌ها از یکدیگر ضروری است. این کار از تداخل نسخه‌ها و بروز مشکلات ناشی از آن‌ها جلوگیری می‌کند.
  • از فایل requirements.txt (یا Pipfile/pyproject.toml) استفاده کنید: فایل‌های requirements.txt، Pipfile و pyproject.toml برای ثبت لیست وابستگی‌های پروژه و نسخه‌های آن‌ها استفاده می‌شوند. این کار به شما امکان می‌دهد وابستگی‌ها را به راحتی با سایر توسعه‌دهندگان به اشتراک بگذارید و اطمینان حاصل کنید که پروژه در محیط‌های مختلف به درستی کار می‌کند.
  • نسخه‌های دقیق وابستگی‌ها را مشخص کنید: برای اطمینان از تکرارپذیری پروژه، بهتر است نسخه‌های دقیق وابستگی‌ها را در فایل requirements.txt (یا Pipfile/pyproject.toml) مشخص کنید. می‌توانید از عملگر == برای تعیین نسخه دقیق استفاده کنید.
  • وابستگی‌ها را به طور منظم به‌روزرسانی کنید: به‌روز نگه داشتن وابستگی‌ها به بهبود امنیت و پایداری پروژه کمک می‌کند. با این حال، قبل از به‌روزرسانی، مطمئن شوید که وابستگی‌های جدید با کد شما سازگار هستند.
  • از ابزارهای مدیریت وابستگی مدرن (مانند Poetry یا Pipenv) استفاده کنید: ابزارهایی مانند Poetry و Pipenv فرآیند مدیریت وابستگی‌ها را ساده‌تر و سازمان‌یافته‌تر می‌کنند. این ابزارها ویژگی‌های پیشرفته‌ای مانند مدیریت قفل وابستگی‌ها، مدیریت محیط‌های مجازی و بسته‌بندی پروژه‌ها را ارائه می‌دهند.
  • درک دقیقی از وابستگی‌های پروژه خود داشته باشید: سعی کنید درک دقیقی از وابستگی‌های پروژه خود داشته باشید و بدانید که هر وابستگی چه نقشی در پروژه ایفا می‌کند. این کار به شما کمک می‌کند تا وابستگی‌های غیرضروری را حذف کنید و اندازه پروژه را کاهش دهید.
  • از ابزارهای تحلیل وابستگی استفاده کنید: ابزارهای تحلیل وابستگی می‌توانند به شما کمک کنند تا وابستگی‌های پنهان یا غیرضروری را در پروژه خود شناسایی کنید.

© 2023 تمامی حقوق محفوظ است.



“`

“تسلط به برنامه‌نویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT”

قیمت اصلی 2.290.000 ریال بود.قیمت فعلی 1.590.000 ریال است.

"تسلط به برنامه‌نویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT"

"با شرکت در این دوره جامع و کاربردی، به راحتی مهارت‌های برنامه‌نویسی پایتون را از سطح مبتدی تا پیشرفته با کمک هوش مصنوعی ChatGPT بیاموزید. این دوره، با بیش از 6 ساعت محتوای آموزشی، شما را قادر می‌سازد تا به سرعت الگوریتم‌های پیچیده را درک کرده و اپلیکیشن‌های هوشمند ایجاد کنید. مناسب برای تمامی سطوح با زیرنویس فارسی حرفه‌ای و امکان دانلود و تماشای آنلاین."

ویژگی‌های کلیدی:

بدون نیاز به تجربه قبلی برنامه‌نویسی

زیرنویس فارسی با ترجمه حرفه‌ای

۳۰ ٪ تخفیف ویژه برای دانشجویان و دانش آموزان