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 و کتابخانههای مرتبط با آن مانند 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
جمع بندی
راهنما و فهرست مقاله
pip چیست؟
نصب و راهاندازی pip
مدیریت پکیجها با pip
مدیریت وابستگیها(depencies) با فایل requirements.txt