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 تعیین کرده ایم تا تضمین کنیم که تمام وابستگی ها با هم سازگار هستند و پروژه بدون مشکل اجرا شود. این کار به مدیریت بهتر پروژه و کاهش احتمال بروز خطاها به دلیل ناسازگاری های نسخه ای کمک می کند.
[note]
بیشتر بخوانید: جنگو چیست؟
[/note]
مدیریت محیط های مجازی با 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 را معرفی کردیم که می توانند در شرایط خاص، گزینه های مفیدی باشند. دانش به دست آمده از این مقاله می تواند به توسعه دهندگان کمک کند تا با اطمینان و کارایی بیشتری پروژه های پایتونی خود را مدیریت و پیش برند.