وبلاگ
مدیریت وابستگیها در پایتون: راهنمای استفاده از pip و virtualenv
فهرست مطالب
“تسلط به برنامهنویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT”
"تسلط به برنامهنویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT"
"با شرکت در این دوره جامع و کاربردی، به راحتی مهارتهای برنامهنویسی پایتون را از سطح مبتدی تا پیشرفته با کمک هوش مصنوعی ChatGPT بیاموزید. این دوره، با بیش از 6 ساعت محتوای آموزشی، شما را قادر میسازد تا به سرعت الگوریتمهای پیچیده را درک کرده و اپلیکیشنهای هوشمند ایجاد کنید. مناسب برای تمامی سطوح با زیرنویس فارسی حرفهای و امکان دانلود و تماشای آنلاین."
ویژگیهای کلیدی:
بدون نیاز به تجربه قبلی برنامهنویسی
زیرنویس فارسی با ترجمه حرفهای
۳۰ ٪ تخفیف ویژه برای دانشجویان و دانش آموزان
0 تا 100 عطرسازی + (30 فرمولاسیون اختصاصی حامی صنعت)
دوره آموزش Flutter و برنامه نویسی Dart [پروژه محور]
دوره فوق فشرده مکالمه زبان انگلیسی (ویژه بزرگسالان)
شمع سازی و عودسازی با محوریت رایحه درمانی
صابون سازی (دستساز و صنعتی)
صفر تا صد طراحی دارو
متخصص طب سنتی و گیاهان دارویی
متخصص کنترل کیفی شرکت دارویی
“`html
مدیریت وابستگیها در پایتون: راهنمای استفاده از 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
فرآیند مدیریت وابستگیها را سادهتر و سازمانیافتهتر میکنند. این ابزارها ویژگیهای پیشرفتهای مانند مدیریت قفل وابستگیها، مدیریت محیطهای مجازی و بستهبندی پروژهها را ارائه میدهند. - درک دقیقی از وابستگیهای پروژه خود داشته باشید: سعی کنید درک دقیقی از وابستگیهای پروژه خود داشته باشید و بدانید که هر وابستگی چه نقشی در پروژه ایفا میکند. این کار به شما کمک میکند تا وابستگیهای غیرضروری را حذف کنید و اندازه پروژه را کاهش دهید.
- از ابزارهای تحلیل وابستگی استفاده کنید: ابزارهای تحلیل وابستگی میتوانند به شما کمک کنند تا وابستگیهای پنهان یا غیرضروری را در پروژه خود شناسایی کنید.
“`
“تسلط به برنامهنویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT”
"تسلط به برنامهنویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT"
"با شرکت در این دوره جامع و کاربردی، به راحتی مهارتهای برنامهنویسی پایتون را از سطح مبتدی تا پیشرفته با کمک هوش مصنوعی ChatGPT بیاموزید. این دوره، با بیش از 6 ساعت محتوای آموزشی، شما را قادر میسازد تا به سرعت الگوریتمهای پیچیده را درک کرده و اپلیکیشنهای هوشمند ایجاد کنید. مناسب برای تمامی سطوح با زیرنویس فارسی حرفهای و امکان دانلود و تماشای آنلاین."
ویژگیهای کلیدی:
بدون نیاز به تجربه قبلی برنامهنویسی
زیرنویس فارسی با ترجمه حرفهای
۳۰ ٪ تخفیف ویژه برای دانشجویان و دانش آموزان