با این مقدمه به سراغ معرفی تعدادی از توزیعهای پایتون میرویم که برخی از آنها یک پیادهسازی استاندارد (CPython) هستند، برخی دیگر نسخههای مخصوص بهینهسازی سرعت (PyPy) هستند، برخی کاربردهای خاصمنظوره دارند (Anaconda، ActivePython) و برخی دیگر برای کسب تجربه در فناوریهای پیشگام (PyCopy, MesaPy) استفاده میشوند.
CPython
CPython مرجع پیادهسازی پایتون است که نسخهای استاندارد از تمام امکانات و قابلیتهای پایتون در آن قرار دارد و به شکل بهینه شدهای طراحی شده است. تیم توسعهدهندگان CPython را به گونهای طراحی کردهاند که سازگارترین و استاندارترین نسخه از پیادهسازی پایتونی باشد که در اختیار توسعهدهندگان قرار دارد. وقتی سازگاری و انطباق با استانداردهای پایتون بیش از عملکرد صرف و سایر ملاحظات ملاک عمل باشد، CPython میتواند بهترین انتخاب باشد. همچنین، CPython برای متخصصانی که میخواهند به بنیادیترین شکل ممکن با پایتون کار کنند مفید است.
بهطور مثال، زمانیکه CPython را انتخاب میکنید، برای تنظیم محیط مجازی باید کار و زمان بیشتری صرف کنید در حالی که سایر توزیعها (به عنوان نمونه Anaconda) تنظیمات محیط کار را با خودکارسازی بیشتری فراهم میکند.
محدودیتهای CPython
CPython بهینهسازیهای کلی عملکرد که در سایر ویرایشهای پایتون یافت میشود را به همراه ندارد. در اینجا خبری از کامپایلر JIT (در آن واحد)، کتابخانههای شتابدهنده ریاضی و افزونههای ثالث بهبود عملکرد نیست. اگر چه شما میتوانید همه اینها را به اختیار خود اضافه کنید، اما به صورت یکپارچه و همراه توزیع نخواهند بود. این نوع طراحی به این دلیل صورت گرفته است تا حداکثر سازگاری فراهم شده و این امکان برای CPython فراهم شود تا به عنوان یک مرجع پیادهسازی خدمترسانی کند. این به معنای آن است که هر نوع بهینهسازی عملکرد برعهده توسعهدهنده است. علاوه بر این، CPython تنها مجموعهای پایه از ابزارهای کار با پایتون را فراهم میکند. برای نمونه بسته مدیریت Pip سایر بستههای موجود در مخزن PyPI پایتون را گردآوری و نصب میکند.
Anaconda Python
Anaconda برای توسعهدهندگانی طراحی شده که به یک توزیع حمایت شده توسط خدماتدهنده تجاری که از خدمات سطح سازمانی پشتیبانی میکند نیاز دارند. اصلیترین کاربرد Anaconda Python در حوزههای ریاضی، آمار، مهندسی، تجزیه و تحلیل داده، یادگیری ماشین و کاربردهای مرتبط است.
موارد استفاده Anaconda Python
آناکوندا خیلی از رایجترین کتابخانههای کاربردی در کارهای تجاری و علمی پایتون (SciPy, NumPy, Numba و نظاير آن) را در یک محیط گردآوری کرده و این امکان را فراهم میکند تا سایر کتابخانههای دیگر را نیز از طریق یک سیستم مدیریت بستههای سفارشی به دست آورید. آناکوندا در نحوه یکپارچهسازی تمام این اجزا به شیوه متفاوتی از سایر توزیعها عمل میکند. بعد از نصب، آناکوندا یک برنامه دسکتاپی (Anaconda Navigator) در اختیار توسعهدهنده قرار میگیرد تا بتواند از طریق یک رابط گرافیکی به تمام بخشهای موجود محیط آناکوندا دسترسی داشته باشد. پیدا کردن مولفهها، بهروز نگه داشتن آنها و کار با آنها با آناکوندا بسیار راحتتر از CPython است.
محدودیتهای Anaconda Python
از آنجایی که آناکوندا شامل تعداد بسیار زیادی کتابخانه مفید است و حتی میتوان با کمی کار بیشتر تعداد بیشتری از آنها را نیز نصب کرد، حجم یک نصب کننده آناکوندا میتواند بیشتر از CPython باشد. یک نصبکننده پایه CPython چیزی در حدود 100 مگابایت حجم دارد، در صورتی که اندازه نصبکننده آناکوندا میتواند به چند گیگابایت برسد. در مواردی که با محدودیت منابع مواجه هستید این موضوع میتواند به یک مشکل تبدیل شود. یکی از راهکارهای حل این مشکل نصب Miniconda است، یک نسخه خلاصه شده از آناکوندا که تنها مولفههای ضروری برای راهاندازی و اجرا را دارد.
ActivePython
ActivePython همانند آناکوندا توسط یک شرکت تجاری بهنام ActiveState تولید و نگهداری میشود که تعدادی از محیطهای زمان اجرای برنامهنویسی به همراه محیط توسعه یکپارچه چند زبانه (Komodo IDE) را به بازار عرضه کرده است.
موارد استفاده ActivePython
ActivePython با هدف خدماترسانی به کاربران سازمانی و دانشمندان داده تولید شده است. کاربرانی که قصد دارند از پایتون استفاده کنند، اما در عين حال نمیخواهند تلاش زیادی را صرف پیادهسازی و مدیریت پایتون کنند. ActivePython از مدیر بسته pip پایتون استفاده میکند، اما علاوه بر این چند صد کتابخانه متداول دیگر از جمله کتابخانه ثالث Intel Math Kernel Library را هم پشتیبانی میکند.
محدودیتهای ActivePython
یک نقطه ضعف در ارتباط با اداره بستههای خارجی وابسته در ActivePython وجود دارد. اگر بخواهید به یک نسخه جدیدتر از یک پروژه با وابستگیهای پیچیده (بهطور مثال، TensorFlow) ارتقا پیدا کنید باید نصبکننده ActivePython را هم ارتقا دهید. این موضوع در محیطهایی که توسعه باید روی نسخه خاصی از یک پروژه انجام شود باعث بروز مشکل میشود.
PyPy
PyPy به عنوان یک جایگزین برای مفسر CPython از کامپایل JIT برای سرعت بخشیدن به اجرای برنامههای پایتون استفاده میکند. بر اساس کاری که در حال انجام است، نتیجه به دست آمده ممکن است شگفتی شما را برانگیزد.
موارد استفاده PyPy
یک شکایت رایج در مورد پایتون و بهطور خاص CPython، مسئله سرعت است. بهطور پیشفرض پایتون خیلی کندتر از سی (گاهی اوقات صدها بار کندتر) اجرا میشود. PyPy از طریق کامپایل سریع (JIT) کدهای پایتون را به زبان ماشین ترجمه میکند، به شکلی که بعضی از وظایف تا 50 برابر سریعتر اجرا میشوند. بهترین بخش موضوع این است که برای دستیابی به چنین قابلیتی به عنوان یک توسعهدهنده نیازی به انجام کار اضافی ندارید. کافی است PyPy را با CPython جایگزین کنید تا بیشتر کارها انجام شود.
محدودیتهای PyPy
PyPy همیشه بهترین عملکرد را با اپلیکیشنهای پایتون محض نشان میدهد. بستههای پایتون که با کتابخانههای سی یکپارچه شدهاند (مثل NumPy)، این توانایی را ندارند تا به خوبی رابطهای دودویی CPython عمل کنند. اگر چه در طی زمان توسعهدهندگان PyPy توانستهاند تا حد زیادی این مشکل را برطرف کنند، اما هنوز هم پشتیبانی از افزونههای سی با محدودیت مواجه است. یک نقطه ضعف احتمالی دیگر در مورد PyPy اندازه محیط زمان اجرا است. محیط زمان اجرای هسته CPython در ویندوز، به استثنای کتابخانه استاندارد، در حدود 4 مگابایت است، در حالی که PyPy runtime در حدود 32 مگابایت حجم دارد.
Jython
ماشین مجازی جاوا (JVM) به عنوان محیط زمان اجرا (runtime) علاوه بر جاوا به انواع مختلف دیگری از زبانها خدمترسانی میکند. فهرست بلند بالایی شامل Groovy, Scala, Clojure, Kotlin و همین طور پایتون تحت پروژهای بهنام Jython این وظیفه را انجام میدهد.
موارد استفاده Jython
Jython کدهای Python 2.x را به JVM bytecode کامپایل میکند و برنامه نهایی را در JVM اجرا میکند. در برخی موارد یک برنامه کامپایل شده توسط Jython سریعتر از همتای CPython خود اجرا میشود، البته این موضوع همیشگی نیست. بزرگترین مزیتی که Jython فراهم میکند قابلیت همکاری مستقیم با اکوسیستم جاوا است. موارد استفاده از جاوا حتی از پایتون هم گستردهتر است.
اجرای پایتون در JVM به توسعهدهندگان پایتون اجازه میدهد از اکوسیستم عظیمی از کتابخانهها و چارچوبهایی که قبل از این نمیتوانستند به سراغ آنها بروند استفاده کنند. از طرف دیگر، Jython به توسعهدهندگان جاوا اجازه میدهد از کتابخانههای پایتون استفاده کنند.
محدودیتهای Jython
بزرگترین نقطه ضعف Jython این است که تنها از نسخه 2.x پایتون پشتیبانی میکند. پشتیبانی از پایتون 3.x در دست اقدام است، اما مشخص نیست چه زمانی تکمیل میشود. نکته دیگری که باید به آن توجه داشته باشید این است که اگر چه Jython پایتون را به JVM میآورد، اما پایتون را به اندروید نمیآورد و نمیتوانید از آن برای توسعه اپلیکیشنهای اندرویدی استفاده کنید.
IronPython
IronPython امکان پیادهسازی پایتون در محیط داتنت یا زمان اجرای زبان مشترک (CLR) سرنام Common Language Runtime را فراهم میکند. IronPython از زمان اجرای زبان مشترک پویا (DLR) سرنام Dynamic Language Runtime استفاده میکند تا این امکان را برای برنامههای پایتون فراهم کند با همان سطح از پویایی که در CPython قابل انجام است اجرا شوند.
موارد استفاده IronPython
IronPython نیز همانند Jython یک پل است. بزرگترین کاربرد آن کارکردپذیری مشترک بین پایتون و داتنت است. با استفاده از فرمانهای اصلی پایتون میتوان کدهای داتنت را در برنامههای IronPython بارگیری کرد.
این امکان نیز وجود دارد تا کدهای IronPython را کامپایل کرد و در زبانهای دیگر اجرا کرد.
محدودیتهای IronPython
IronPython نیز مثل Jython در حال حاضر تنها از نسخه 2.x پایتون پشتیبانی میکند. اما تیم توسعه مشغول آمادهسازی IronPython 3.x هستند.
WinPython
همانگونه که از نام این توزیع پيدا است، WinPython یک توزیع از پایتون است که بهطور خاص برای کاربران ویندوز ساخته شده است. ویرایشهای اولیه CPython برای ویندوز به خوبی طراحی نشده بود و برای کاربران ویندوز دشوار بود تا بتوانند از تمام مزایای اکوسیستم پایتون بهرهمند شوند. ویرایش ویندوزی CPython به مرور زمان بهبود پیدا کرد، اما WinPython همچنان امکاناتی را ارائه میکند که در CPython وجود ندارد.
موارد استفاده WinPython
جذابیت اصلی WinPython این است که یک ویرایش مستقل از پایتون است و نیازی ندارد روی ماشینی که در آن اجرا میشود نصب شود، کافی است آنرا در یک پوشه باز کنید. این نکته مثبت برای زمانهایی که امکان نصب نرمافزار روی یک سیستم مشخص وجود ندارد مفید است. همچنین، WinPython مجموعهای از بستههای مرتبط با علوم داده (NumPy، Pandas، SciPy، Matplotlib و غیره) را گردآوری کرده است. بنابراین میتوانید بدون نیاز به گذراندن مراحل اضافی نصب مستقیما از آنها استفاده کنید. از آنجایی که خیلی از سیستمهای ویندوزی به کامپایلر C/C++ مجهز نیستند و خیلی از افزونههای پایتون به آن نیاز دارند، WinPython این کامپایلر را ارائه میکند.
محدودیتهای WinPython
یک محدودیت WinPython این است که بهطور پیشفرض برای برخی کاربردها ممکن است بیش از حد حجیم باشد.
برای غلبه بر این مشکل، سازندگان WinPython برای هر ویرایش از آن یک نسخه zero فراهم کردهاند که تنها مولفههای ضروری این توزیع را شامل میشوند و بستههای بیشتر را میتوان در آینده به آن اضافه کرد.
Python Portable
Python Portable یک زمان اجرایCPython در یک بسته مستقل است. توزیع فوق یک نسخه رايگان از مجموعه PortableDevApps است.
موارد استفاده Python Portable
Python Portable نیز شامل مجموعهای از بستههای مرتبط با علوم داده (NumPy، Pandas ،SciPy، Matplotlib و غیره) است. این توزیع نیز همانند WinPython برای اجرا نیازی به نصب روی میزبان ویندوزی ندارد و میتوان آنرا در هر پوشه یا درایو قابل حمل اجرا کرد. یک محیط توسعه یکپارچه (Spyder IDE) و مدیر بسته pip پایتون نیز در این مجموعه قرار گرفته تا بتوانيد بستههای مورد نیاز را اضافه، حذف یا تغییر دهید.
محدودیتهای Python Portable
برخلاف WinPython، Python Portable به کامپایلر C++/C مجهز نشده است. توسعهدهندگان برای استفاده از کدهای نوشته شده با Cython (و آنهایی که به سی کامپایل میشوند) باید یک کامپایلر سی را نصب کنند.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟