🎁 شروع برنامه نویسی را از ما هدیه بگیرید!
۰ ثانیه
۰ دقیقه
۰ ساعت
۰ دیدگاه نظر محمدرسول اصغری
pip در پایتون چیست؟ (آموزش کامل و دستورات کاربردی)
pip در پایتون چیست؟ (آموزش کامل و دستورات کاربردی)

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

pip چیست؟ 

pip، مخفف "Package Installer for Python"، یک ابزار مدیریت بسته‌ها برای زبان برنامه‌نویسی پایتون است. این ابزار از مخازن توزیع پکیج‌ها مانند PyPI (Python Package Index) استفاده می‌کند تا بسته‌های مورد نیاز را شناسایی کرده و بر روی سیستم شما نصب کند. pip همچنین قابلیت مدیریت وابستگی‌های(dependency) بسته‌ها را دارد.

وابستگی‌ها یا Dependencies در پایتون، به مجموعه پکیج‌هایی اشاره دارند که یک پکیج معین برای کارکرد صحیح خود به آن‌ها احتیاج دارد. pip به شما امکان می‌دهد تا پکیج‌های مورد نظر خود را به همراه وابستگی‌های آن به راحتی در پروژه‌های پایتونی خود نصب کنید، در صورت نیاز آن‌ها را حذف نمایید و به آسانی به آخرین نسخه‌ها به‌روزرسانی کنید.

نصب و راه‌اندازی pip

یکی از اولین گام‌هایی که  برای استفاده از pip باید انجام دهید، نصب آن بر روی سیستم خود است. در این بخش، گام به گام نحوه‌ی نصب pip را برای شما توضیح می‌دهیم.

بررسی نصب pip

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

pip --version

اگر pip نصب شده باشد، نسخه‌ آن به همراه مشخصات دیگر نمایش داده می‌شود. اگر پیغام خطا یا پیغام 

"pip: command not found" را مشاهده کردید، نشان دهنده‌ این است که pip بر روی سیستم شما نصب نیست.

نصب pip

معمولاً با نصب پایتون، ابزار pip نیز به طور خودکار نصب می‌شود. با این حال، اگر  که pip در محیط پایتون شما نصب نشده است، دو روش برای نصب آن وجود دارد:

ensurepip

ensurepip  یک ماژول است که به طور پیش‌فرض با پایتون ارائه می‌شود و می‌توانید با استفاده از دستور زیر آن را فعال کنید:

python -m ensurepip

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

get-pip.py

 برای استفاده از get-pip.py ، ابتدا باید فایل get-pip.py را دانلود کنید. سپس، دستور زیر را در ترمینال یا خط فرمان وارد کنید تا pip نصب شود:

python get-pip.py

با اجرای این دستور، pip بر روی سیستم شما نصب خواهد شد.

پس از نصب pip، شما آماده استفاده از این ابزار قدرتمند برای مدیریت پکیج‌ها و dependency در پروژه‌های پایتونی خود هستید.

مدیریت پکیج‌ها با pip

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

 در ادامه، به چند مورد از دستورات مهم مدیریت پکیج‌ با pip می‌پردازیم:

نصب پکیج جدید

برای نصب یک پکیج جدید، می‌توانید از دستور زیر استفاده کنید. این دستور پکیج مورد نظر را از PyPI یا Python Package Index دانلود و نصب می‌کند. برای مثال:

pip install requests

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

به‌روزرسانی پکیج‌ها

pip install --upgrade requests

این دستور نسخه نصب شده فعلی requests را بررسی می‌کند و آن را به آخرین نسخه موجود در PyPI به‌روزرسانی می‌کند.

حذف پکیج‌ها

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

pip uninstall requests

این دستور پکیج requests را از محیط پایتون شما حذف می‌کند.

مدیریت نسخه‌های پکیج‌ها

pip اجازه می‌دهد که نسخه خاصی از یک پکیج را مشخص و نصب کنید، برای مثال:

pip install requests==2.23.0

این دستور نسخه دقیق 2.23.0 از پکیج requests را نصب می‌کند. همچنین می‌توانید از عملگرهای مقایسه‌ای برای مشخص کردن یک دامنه نسخه‌های مجاز استفاده کنید.

نمایش لیست پکیج‌های نصب شده

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

pip list

ذخیره لیست پکیج‌ها در فایل requirements.txt

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

pip freeze > requirements.txt

مدیریت وابستگی‌ها(depencies) با فایل requirements.txt

فایل requirements.txt در پروژه‌های پایتون یک ابزار مهم و کلیدی است که به خاطر ساده‌سازی محیط‌های تست و  کنترل نسخه‌های پکیج‌ها و …  در توسعه و تست نرم‌افزار کاربرد دارد. این فایل به توسعه‌دهندگان اجازه می‌دهد تا پکیج‌های مورد نیاز یک پروژه را به طور دقیق مدیریت و هماهنگ کنند.

ساختار فایل requirements.txt

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

package_name==version_number

در اینجا، package name نام بسته مورد نظر است و version_number نسخه‌ی مورد نظر آن بسته است. این نسخه می‌تواند به صورت دقیق (مانند 1.0.0) یا با استفاده از عملگرهای مقایسه‌ای (مانند >= 1.0.0) مشخص شود.

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

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

تعیین نسخه دقیق یک بسته

برای تضمین سازگاری و پایداری پروژه، ممکن است لازم باشد که نسخه دقیق یک کتابخانه مشخص شود. به عنوان مثال، برای استفاده دقیق از کتابخانه numpy در نسخه 1.20.1، این مورد را به فایل requirements.txt خود اضافه می‌کنیم:

numpy==1.20.1

برای نصب نسخه‌ای بزرگتر یا مساوی از یک بسته

گاهی اوقات نیاز است که حداقل نسخه‌ای از یک کتابخانه نصب شود تا از ویژگی‌های جدید آن استفاده کنیم. مثلاً برای نصب نسخه‌ای از pandas که حداقل 1.2.3 است:

pandas>=1.2.3

برای نصب نسخه‌ای کمتر یا مساوی از یک بسته

در مواردی که نمی‌خواهیم از نسخه‌های جدیدتر یک کتابخانه استفاده کنیم که ممکن است با سایر بخش‌های پروژه سازگار نباشد، می‌توانیم ماکزیمم نسخه مجاز را مشخص کنیم. برای مثال، برای محدود کردن کتابخانه matplotlib به نسخه 3.3.4 یا کمتر:

matplotlib<=3.3.4

نمونه‌ای از فایل requirements.txt برای پروژه‌های Django

در پروژه‌های پیچیده‌تر مانند پروژه‌های مبتنی بر Django، معمولاً وابستگی‌های چندگانه‌ای داریم که باید به دقت مدیریت شوند تا از هماهنگی بین کتابخانه‌ها اطمینان حاصل شود. به عنوان مثال، فایل requirements.txt زیر وابستگی‌های مورد نیاز برای یک پروژه Django را با دقت مشخص می‌کند:

Django>=3.2.0,<4.0
djangorestframework>=3.12.0,<4.0
django-crispy-forms>=1.12.0,<2.0
django-environ>=0.7.0,<1.0

در این فایل، ما نسخه‌های خاصی را برای Django و کتابخانه‌های مرتبط با آن مانند Django Rest Framework، Django Crispy Forms و Django Environ تعیین کرده‌ایم تا تضمین کنیم که تمام وابستگی‌ها با هم سازگار هستند و پروژه بدون مشکل اجرا شود. این کار به مدیریت بهتر پروژه و کاهش احتمال بروز خطاها به دلیل ناسازگاری‌های نسخه‌ای کمک می‌کند.

مدیریت محیط‌های مجازی با pip و virtualenv

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

نصب virtualenv

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

pip install virtualenv

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

پس از نصب virtualenv، یک محیط مجازی جدید با استفاده از دستور زیر ایجاد کنید:

virtualenv myenv

این دستور یک پوشه به نام myenv ایجاد می‌کند که شامل نسخه‌ای از پایتون و نسخه‌ای از pip است که به طور جداگانه از سایر پروژه‌ها عمل می‌کنند.

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

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

myenv\Scripts\activate

در macOS و Linux:

source myenv/bin/activate

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

مزایای استفاده از محیط‌های مجازی در توسعه پایتون

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

  • جداسازی وابستگی‌ها: هر پروژه می‌تواند وابستگی‌های مخصوص به خود را داشته باشد که با استفاده از محیط‌های مجازی به راحتی قابل مدیریت هستند. این امر از تداخل بین پروژه‌ها جلوگیری می‌کند و اطمینان می‌دهد که هر پروژه با نسخه‌های دقیقی از کتابخانه‌هایی که نیاز دارد، کار می‌کند.
  • تسهیل در توسعه مستقل: با استفاده از محیط‌های مجازی، توسعه‌دهندگان می‌توانند بدون نگرانی از تغییرات محیط سیستمی یا اثرگذاری بر سایر پروژه‌ها، تغییرات را اعمال کنند. این امر به ویژه در توسعه و تست در محیط Local مفید است.
  • سهولت در استقرار و توسعه: محیط‌های مجازی را می‌توان به راحتی کپی کرد و بر روی سرورهای مختلف یا در کانتینرها استقرار داد.

معرفی جایگزین‌های pip

هرچند که pip یکی از محبوب‌ترین ابزارها برای مدیریت پکیج‌ها در پایتون به شمار می‌رود، اما جایگزین‌هایی وجود دارند که می‌توانند در شرایط خاص، گزینه‌های بهتری باشند. این جایگزین‌ها می‌توانند در مدیریت محیط‌ها یا پکیج‌هایی با نیازهای خاص مزایای بیشتری ارائه دهند. در ادامه به معرفی برخی از این ابزارها می‌پردازیم:

Conda

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

Poetry

Poetry یک ابزار مدیریت وابستگی برای پروژه‌های پایتون است که به طور خاص برای کمک به توسعه‌دهندگان در مدیریت وابستگی‌ها به شکل منظم‌تر و مؤثرتر طراحی شده است. Poetry از فایل‌های pyproject.toml برای تعریف وابستگی‌ها استفاده می‌کند و قابلیت‌هایی مانند قفل کردن وابستگی‌ها و ایجاد فایل‌های قابل توزیع را دارد.

Pipenv

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

PDM (Python Development Master) 

PDM یکی از جدیدترین ابزارهای مدیریت بسته در پایتون است که تمرکز خود را بر استفاده از استاندارد `pyproject.toml` برای تعریف وابستگی‌ها قرار داده است. این ابزار به طور خودکار محیط‌های مجازی ایجاد می‌کند و امکان مدیریت پکیج‌ها را فراهم میکند. PDM به دلیل امکانات پیشرفته و رابط کاربری ساده‌اش، به سرعت در بین توسعه‌دهندگان پایتون محبوبیت خوبی پیدا کرده است.

مقایسه ابزارهای مدیریت بسته در پایتون

انتخاب ابزار مناسب برای مدیریت بسته‌ها در محیط توسعه اهمیت زیادی دارد. ابزارهایی مانند pip, Conda, Poetry, و Pipenv هر کدام ویژگی‌های منحصر به فردی دارند که می‌توانند بر اساس نیازهای پروژه مفید باشند.در جدول زیر، ما این ابزارها را از نظر برخی ویژگی‌های مهم ررسی کرده‌ایم تا انتخاب مناسب‌تری برای نیازهای پروژه‌های پایتونی خود داشته باشید.

ویژگی

Pip

Conda

Poetry

Pipenv

Anaconda

PDM

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

✔️

✔️

✔️

✔️

✔️

مدیریت محیط مجازی

✔️

✔️

✔️

✔️

✔️

پشتیبانی از فایل قفل

✔️

✔️

✔️

پشتیبانی از PyPI 

✔️

✔️

✔️

✔️

ادغام با پایتون

✔️

✔️

✔️

✔️

نصب بسته‌های غیر پایتونی

✔️

✔️

دستورات سفارشی

✔️

✔️

✔️

✔️

✔️

سازگاری با سیستم‌های مختلف

✔️

✔️

✔️

✔️

✔️

✔️

جمع بندی

در این مقاله، به بررسی جامع و دقیق ابزار pip در پایتون پرداختیم، ابزاری که نقش مهم در مدیریت پکیج‌ها دارد و امکاناتی مانند نصب، به‌روزرسانی و حذف پکیج‌ها را به کاربران ارائه می‌دهد. همچنین، توضیح دادیم که چگونه می‌توان با استفاده از virtualenv، محیط‌های مجازی را ایجاد و مدیریت کرد. علاوه بر این، جایگزین‌هایی چون Conda، Poetry و Pipenv را معرفی کردیم که می‌توانند در شرایط خاص، گزینه‌های مفیدی باشند. دانش به دست آمده از این مقاله می‌تواند به توسعه‌دهندگان کمک کند تا با اطمینان و کارایی بیشتری پروژه‌های پایتونی خود را مدیریت و پیش برند.

۰ دیدگاه
ما همه سوالات و دیدگاه‌ها رو می‌خونیم و پاسخ میدیم
  • pip چیست؟ 
  • نصب و راه‌اندازی pip
  • مدیریت پکیج‌ها با pip
  • مدیریت وابستگی‌ها(depencies) با فایل requirements.txt
  • مدیریت محیط‌های مجازی با pip و virtualenv
  • معرفی جایگزین‌های pip
  • جمع بندی
اشتراک گذاری مقاله در :