pip یک ابزار مدیریت پکیج در پایتون است.این ابزار به شما اجازه میدهید تا پکیجهای خارجی را به راحتی نصب، بهروزرسانی و مدیریت کنید،پکیجهای خارجی شامل کدهایی هستند که در خود پایتون پیادهسازی نشدهاند و توسط توسعه دهندگان دیگر نوشته شده است.در ادامه به بررسی دقیق ویژگیها و کاربردهای pip میپردازیم و نحوهی استفاده از آن برای نصب و مدیریت کتابخانههای مورد نیاز را بررسی میکنیم.
pip، مخفف "Package Installer for Python"، یک ابزار مدیریت بستهها برای زبان برنامهنویسی پایتون است. این ابزار از مخازن توزیع پکیجها مانند PyPI (Python Package Index) استفاده میکند تا بستههای مورد نیاز را شناسایی کرده و بر روی سیستم شما نصب کند. pip همچنین قابلیت مدیریت وابستگیهای(dependency) بستهها را دارد.
وابستگیها یا Dependencies در پایتون، به مجموعه پکیجهایی اشاره دارند که یک پکیج معین برای کارکرد صحیح خود به آنها احتیاج دارد. pip به شما امکان میدهد تا پکیجهای مورد نظر خود را به همراه وابستگیهای آن به راحتی در پروژههای پایتونی خود نصب کنید، در صورت نیاز آنها را حذف نمایید و به آسانی به آخرین نسخهها بهروزرسانی کنید.
یکی از اولین گامهایی که برای استفاده از pip باید انجام دهید، نصب آن بر روی سیستم خود است. در این بخش، گام به گام نحوهی نصب pip را برای شما توضیح میدهیم.
قبل از هر چیز، ابتدا باید بررسی کنید که pip بر روی سیستم شما نصب شده است یا خیر. برای این کار، میتوانید یک ترمینال یا دستور خط فرمان باز کنید و دستور زیر را وارد کنید:
pip --version
اگر pip نصب شده باشد، نسخه آن به همراه مشخصات دیگر نمایش داده میشود. اگر پیغام خطا یا پیغام
"pip: command not found" را مشاهده کردید، نشان دهنده این است که pip بر روی سیستم شما نصب نیست.
معمولاً با نصب پایتون، ابزار pip نیز به طور خودکار نصب میشود. با این حال، اگر که pip در محیط پایتون شما نصب نشده است، دو روش برای نصب آن وجود دارد:
ensurepip یک ماژول است که به طور پیشفرض با پایتون ارائه میشود و میتوانید با استفاده از دستور زیر آن را فعال کنید:
python -m ensurepip
این دستور، ensurepip را فعال میکند و شما میتوانید بلافاصله از pip استفاده کنید.
برای استفاده از get-pip.py ، ابتدا باید فایل get-pip.py را دانلود کنید. سپس، دستور زیر را در ترمینال یا خط فرمان وارد کنید تا pip نصب شود:
python get-pip.py
با اجرای این دستور، pip بر روی سیستم شما نصب خواهد شد.
پس از نصب pip، شما آماده استفاده از این ابزار قدرتمند برای مدیریت پکیجها و dependency در پروژههای پایتونی خود هستید.
در محیط توسعهی پایتون، نیاز به مدیریت و نصب پکیجها برای پروژههای مختلف از اهمیت بالایی برخوردار است.
در ادامه، به چند مورد از دستورات مهم مدیریت پکیج با 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 برای ذخیره لیست پکیجهای نصب شده یک روش موثر برای به اشتراکگذاری و مدیریت وابستگیها در پروژههاست. برای تولید این فایل از دستور زیر استفاده کنید:
pip freeze > requirements.txt
فایل requirements.txt در پروژههای پایتون یک ابزار مهم و کلیدی است که به خاطر سادهسازی محیطهای تست و کنترل نسخههای پکیجها و … در توسعه و تست نرمافزار کاربرد دارد. این فایل به توسعهدهندگان اجازه میدهد تا پکیجهای مورد نیاز یک پروژه را به طور دقیق مدیریت و هماهنگ کنند.
فایل requirements.txt یک فایل متنی است که استفاده از آن به برنامهنویسان اجازه میدهد تا پکیجهای لازم پروژهی خود را به صورت مشخص و سازمان یافته تعریف کنند. این فایل شامل لیستی از پکیج هایی است که برنامه باید قبل از اجرا نصب کند.
ساختار هر خط از این فایل به صورت زیر است:
package_name==version_number
در اینجا، package name نام بسته مورد نظر است و version_number نسخهی مورد نظر آن بسته است. این نسخه میتواند به صورت دقیق (مانند 1.0.0) یا با استفاده از عملگرهای مقایسهای (مانند >= 1.0.0) مشخص شود.
در مواردی که نیاز است پروژههای توسعهیافته با نسخههای قدیمیتر یا جدیدتر از یک بسته سازگار باشند، میتوان از ترکیب محدودیتهای نسخه استفاده کرد. این روش به توسعهدهندگان امکان میدهد که به صورت دقیقتری کنترل کنند که کدام نسخهها باید نصب شوند تا از پایداری و سازگاری سیستم اطمینان حاصل شود.
برای تضمین سازگاری و پایداری پروژه، ممکن است لازم باشد که نسخه دقیق یک کتابخانه مشخص شود. به عنوان مثال، برای استفاده دقیق از کتابخانه 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
در پروژههای پیچیدهتر مانند پروژههای مبتنی بر 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 تعیین کردهایم تا تضمین کنیم که تمام وابستگیها با هم سازگار هستند و پروژه بدون مشکل اجرا شود. این کار به مدیریت بهتر پروژه و کاهش احتمال بروز خطاها به دلیل ناسازگاریهای نسخهای کمک میکند.
محیطهای مجازی در پایتون، ابزارهای حیاتی برای جداسازی پروژهها و مدیریت وابستگیهای بین آنها بدون دخالت در کتابخانههای سیستمی هستند. virtualenv یکی از این ابزارها است که به توسعهدهندگان اجازه میدهد تا نسخههای مختلف پایتون و کتابخانهها را در محیطهای جداگانه نگهداری کنند. استفاده از این ابزار، تداخل بین پکیجهای مختلف را کاهش میدهد و به افزایش پایداری و سازگاری پروژهها کمک میکند.
برای شروع، ابتدا باید virtualenv را نصب کنید. virtualenv یک ابزار مستقل است که به شما امکان میدهد محیطهای پایتون مجازی ایجاد کنید. برای نصب این ابزار میتوانید از pip استفاده کنید:
pip install virtualenv
پس از نصب virtualenv، یک محیط مجازی جدید با استفاده از دستور زیر ایجاد کنید:
virtualenv myenv
این دستور یک پوشه به نام myenv ایجاد میکند که شامل نسخهای از پایتون و نسخهای از pip است که به طور جداگانه از سایر پروژهها عمل میکنند.
برای استفاده از محیط مجازی، آن را با استفاده از دستور زیر فعال کنید.
در ویندوز:
myenv\Scripts\activate
در macOS و Linux:
source myenv/bin/activate
پس از فعالسازی، هر دستور pip یا python که اجرا میکنید، فقط داخل این محیط مجازی اثر میگذارد و تاثیری بر سیستم عامل اصلی یا دیگر محیطها ندارد.
استفاده از محیطهای مجازی در توسعه نرمافزار پایتون یک رویکرد حیاتی است که تاثیرات مثبت گستردهای بر فرآیندهای توسعه و تست دارد. این تکنیک به توسعهدهندگان اجازه میدهد که محیطهایی جداگانه برای پروژههای مختلف خود ایجاد کرده و به این ترتیب، نیازهای خاص هر پروژه را به طور دقیق برآورده سازند. در ادامه چند مزیت اصلی استفاده از این محیطها را میآوریم:
هرچند که pip یکی از محبوبترین ابزارها برای مدیریت پکیجها در پایتون به شمار میرود، اما جایگزینهایی وجود دارند که میتوانند در شرایط خاص، گزینههای بهتری باشند. این جایگزینها میتوانند در مدیریت محیطها یا پکیجهایی با نیازهای خاص مزایای بیشتری ارائه دهند. در ادامه به معرفی برخی از این ابزارها میپردازیم:
ابزار مدیریت پکیج Conda، که در جامعه علم داده بسیار محبوب است، نه تنها پکیجهای پایتون بلکه کتابخانههای مورد نیاز سیستمعامل را نیز مدیریت میکند. Conda قابلیت ایجاد محیطهای مجازی مستقل را دارد و در مدیریت پکیجهایی که نیازمند کامپایلهای خاص پلتفرم هستند، عملکرد بهتری از خود نشان میدهد.
Poetry یک ابزار مدیریت وابستگی برای پروژههای پایتون است که به طور خاص برای کمک به توسعهدهندگان در مدیریت وابستگیها به شکل منظمتر و مؤثرتر طراحی شده است. Poetry از فایلهای pyproject.toml برای تعریف وابستگیها استفاده میکند و قابلیتهایی مانند قفل کردن وابستگیها و ایجاد فایلهای قابل توزیع را دارد.
یک ابزار دیگر برای مدیریت وابستگیهای پایتون است که محیطهای مجازی را به صورت خودکار مدیریت و ایجاد میکند. این ابزار با استفاده از فایلهای Pipfile و Pipfile.lock به توسعهدهندگان امکان میدهد تا وابستگیهای پروژه را دقیقتر مدیریت کنند. Pipenv به طور خودکار وابستگیها را نصب و بهروزرسانی میکند، و تضمین میکند که محیط توسعه همواره با محیط تولید همخوانی دارد.
PDM یکی از جدیدترین ابزارهای مدیریت بسته در پایتون است که تمرکز خود را بر استفاده از استاندارد `pyproject.toml` برای تعریف وابستگیها قرار داده است. این ابزار به طور خودکار محیطهای مجازی ایجاد میکند و امکان مدیریت پکیجها را فراهم میکند. PDM به دلیل امکانات پیشرفته و رابط کاربری سادهاش، به سرعت در بین توسعهدهندگان پایتون محبوبیت خوبی پیدا کرده است.
انتخاب ابزار مناسب برای مدیریت بستهها در محیط توسعه اهمیت زیادی دارد. ابزارهایی مانند pip, Conda, Poetry, و Pipenv هر کدام ویژگیهای منحصر به فردی دارند که میتوانند بر اساس نیازهای پروژه مفید باشند.در جدول زیر، ما این ابزارها را از نظر برخی ویژگیهای مهم ررسی کردهایم تا انتخاب مناسبتری برای نیازهای پروژههای پایتونی خود داشته باشید.
ویژگی | Pip | Conda | Poetry | Pipenv | Anaconda | PDM |
مدیریت وابستگیها | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
مدیریت محیط مجازی | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
پشتیبانی از فایل قفل | ❌ | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
پشتیبانی از PyPI | ✔️ | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
ادغام با پایتون | ✔️ | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
نصب بستههای غیر پایتونی | ❌ | ✔️ | ❌ | ❌ | ✔️ | ❌ |
دستورات سفارشی | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
سازگاری با سیستمهای مختلف | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
در این مقاله، به بررسی جامع و دقیق ابزار pip در پایتون پرداختیم، ابزاری که نقش مهم در مدیریت پکیجها دارد و امکاناتی مانند نصب، بهروزرسانی و حذف پکیجها را به کاربران ارائه میدهد. همچنین، توضیح دادیم که چگونه میتوان با استفاده از virtualenv، محیطهای مجازی را ایجاد و مدیریت کرد. علاوه بر این، جایگزینهایی چون Conda، Poetry و Pipenv را معرفی کردیم که میتوانند در شرایط خاص، گزینههای مفیدی باشند. دانش به دست آمده از این مقاله میتواند به توسعهدهندگان کمک کند تا با اطمینان و کارایی بیشتری پروژههای پایتونی خود را مدیریت و پیش برند.