پکیج منیجر های زبان پایتون

پکیج منیجر های زبان پایتون

بروزرسانی : 5 ماه پیش

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

چیزی که بیشتر زبان پایتون را محبوب تر میکند اکوسیستم کتابخانه های متن باز و رایگانی مثل Tensorflow ، Netmiko ، Flaskو ... است.

کتابخانه ها و فریمورک های پایتون را میتوانید با استفاده از پکیج منیجر ها ( نرم افزارهای مدیریت بسته ) نصب و مدیریت کنید.

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

پکیج منیجرهای پایتون



PyPI یا مخزن پکیج های پایتون 

مخزن پکیج های پایتون

همانند NuGet.org یا npmjs.org زبان برنامه نویسی پایتون نیز مخزن پکیج های مختص خود را دارد. The Python Package Index (PyPI) یک مخزن عالی برای زبان برنامه نویسی پایتون است که تمامی کتابخانه ها ، ابزارها و فریمورک های مورد نیاز پایتون را درون خود نگهداری کرده است.

پکیج های درون PyPI به برنامه نویسان پایتون کمک زیادی کرده تا چرخ را دوباره اختراع نکنند بلکه از کدهایی که قبلا بقیه نوشته اند نهایت استفاده را بکنند.

وجود PyPI باعث شد که نیاز به یک پکیج منیجر درست حسابی برای زبان پایتون احساس شود تا این پکیج ها موقع نصب و استفاده به مشکل نخورد و آن پکیج منیجر با نام pip ساخته شد که در ادامه ی مقاله به آن میپردازیم.

 

پکیج منیجر استاندارد زبان پایتون یا Pip

پکیج منیجر پایتون pip چیست

پکیج منیجر pip درون پایتون قرار گرفته است که میتواند انواع پکیج ها را از منابع مختلفی نصب کند ولی بصورت پیشفرض منبع مورد استفاده ی این پکیج منیجر همان PyPI هست که در بالا به آن اشاره کردیم.

پکیج منیجر pip بصورت پیشفرض تمام پکیج ها را بصورت global نصب میکند در نتیجه برای همه ی پروژه های پایتونی در دسترس هستند و این میتواند بخاطر وابستگی نسخه ی پکیج ها باشد که در صورت نصب global از مشکلات تا حدودی جلوگیری میشود.

خوشبختانه پکیج منیجر pip تمام وابستگی های یک پکیج را قبل از نصب آن آماده میکند و سپس پکیج را نصب میکند تا هیچ مشکلی پیش نیاید ، اما اگر شما به نسخه های خاص برای پکیج ها نیاز دارید میتوانید یک محیط جدا ( Python environment ) برای پروژه ی پایتونی خود بسازید.

 

Virtual Environments & Virtualenv در پایتون

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

تصور کنید ما دو پروژه ی پایتونی داریم که یکی از آنها نسخه ی 1.10 کتابخانه ی numpy را نیاز دارد و یکی دیگر نسخه ی 1.19 و ما باید بتوانیم دقیقا همان نسخه را برای هر کدام نصب کنیم. حال اگر بصورت پیشفرض با استفاده از pip کتابخانه را بصورت عمومی ( global ) نصب کنیم یکی از این پروژه ها یا شاید هر دوی آنها به درستی کار نخواهد کرد چرا که با نسخه ی مورد نیازش سازگار نخواهد بود. 

برای ساختن محیط مجازی میتوان از ابزار Virtualenv استفاده کرد. این ابزار کمک میکند تا برای هر پروژه ی پایتونی محیط جدید با نسخه های مختلفی از پکیج را بسازید که تداخلی در هم نداشته باشند ، در این حالت هر محیط دایرکتوری های نصب خود را دارد و کتابخانه ها را با سایر محیط های مجازی (از جمله کتابخانه های نصب شده در سطح جهانی) به اشتراک نمی گذارد.

برای مثال یک پروژه برای توسعه ی وب داشته باشیم و یک پروژه برای علم داده ، مطمئنا اینها کتابخانه های متفاوتی مورد نیاز دارند.

 

محیط های مجازی با استفاده از virtualenv پایتون

 

جایگزین های Pip پایتون ( Pipenv و Poetry )

پکیج منیجر اصلی پایتون pip میباشد که دیگر توسعه دهندگان نیز برای بهبود آن تلاش کرده اند و  Pipenv و Poetry دو پکیج منیجر دیگر هستند که آنها هم بخوبی عمل کرده اند.

پکیج منیجر Pipenv یک پکیج منیجر برای زبان پایتون است. pipenv مشابه npm برای نودجی اس و همچنین باندلر ruby عمل میکند. این پکیج منیجر به دلیل اینکه محیط های مجازی ( virtual environments ) و مدیریت بسته ( package management ) را در یک ابزار واحد ادغام می کند در بین برنامه نویسان پایتون محبوب است.

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

پکیج منیجر Poetry نیز با شعار آسان کردن فرایند پکیج کردن پایتون و مدیریت وابستگی ها ساخته شده است. این ابزار علاوه بر مدیریت بسته ها به ساخت توزیع ها برنامه ها و انتشار انها روی PyPI کمک میکند.همچنین امکان اعلام کتابخانه‌هایی را که یک پروژه به آنها وابسته است را می‌دهد و آنها را نصب/به‌روزرسانی می‌کند تا از هرگونه ایجاد تضاد جلوگیری شود. 

همچنین poetry پروژه ها را کاملا ایزوله میکند تا پکیج های مختص برای هر محیط توسعه جدا باشد.

 

پکیج منیجر جایگزین دیگر به نام Conda

پکیج منیجر پایتون anaconda یا conda

پکیج منیجر دیگری به نام Conda وجود دارد که چند منظوره است ، این ابزار وابستگی های پکیج ها را مدیریت میکند ، میتواند virtual environment های مختلفی را برای پروژه ها بسازد ، توزیع های مختلف پایتون را نصب میکند  و برنامه ها را برای انتشار پکیج بندی میکند.این ابزار از Anaconda است که یک کتابخانه ی پایتونی برای علوم داده است.

Conda بجای PyPI پکیج ها را از Anaconda نصب می کند و می تواند با چندین زبان برنامه نویسی استفاده شود.

در مقایسه ی با PyPI پکیج های درون Conda کم هستند ولی کیفیت بالا این کمبود را جبران میکند.

هرتوسعه دهنده ای میتواند روی PyPI پکیج قرار دهد ولی در Anaconda تنها پکیج های مورد تایید خودشان قرار میگیرد.

در واقع Anaconda یک نسخه ی پولی دارد که در آن برخلاف PyPI که کاملا رایگان است تضمین کیفیت میدهد و برای افرادی که به دنبال دردسر نیستند خوب هست.

 

شروع کار با پکیج منیجر های پایتونی 

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

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

در این حالت پکیج منیجرهای Pipenv و Poetry بهتر هستند.

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

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

 

لینک کوتاه این مقاله : https://avasam.ir/post/406
این سیستم برپایه ی علاقه مندی شما یک دوره ی مناسب به شما پیشنهاد میدهد
مرا بسوی بهترین دوره ی آموزشی که برای من مناسب است هدایت کن 🤖
برای استفاده ی دیگران و حمایت از ما در جامعه های زیر به اشتراک بگذارید

.:: نظرهای کاربران ::.
دوره ی آموزش پروژه محور ساخت کافه بازار دوره ی آموزش پروژه محور ساخت فروشگاه دیجیکالا آموزش لاراول دوره ی آموزش ویو جی اس