۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

۱۰ پایتون برای هر نیاز برنامه نویسی

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

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

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

در اینجا یک تور مختصر از توزیع‌های پایتون، از اجرای استاندارد (CPython) تا نسخه‌های بهینه‌سازی شده برای سرعت (PyPy)، موارد استفاده خاص (Anaconda، ActivePython)، زمان‌های اجرا زبان مختلف (Jython، IronPython) آورده شده است. ، و موارد استفاده آزمایشی (MicroPython، RustPython).

CPython

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

از موارد برای CPython

استفاده کنید

از آنجایی که CPython پیاده‌سازی مرجع پایتون است، از لحاظ بهینه‌سازی، از لحاظ تاریخی محافظه‌کارانه‌ترین زمان اجرا بوده است. نگهبانان پایتون می خواهند CPython سازگارترین و استانداردترین پیاده سازی پایتون موجود باشد. با این حال، طی چند بازبینی اخیر، تیم توسعه بهینه‌سازی‌هایی را معرفی کرده است که برای سریع‌تر کردن Python به طور کلی، با برنامه‌ریزی‌های بلندپروازانه‌تر طراحی شده‌اند – اما هرگز به قیمت سازگاری با عقب‌تر.

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

به عنوان مثال، با CPython، برای راه اندازی محیط های مجازی باید کمی بیشتر عمل کنید. سایر توزیع‌ها (به ویژه آناکوندا) اتوماسیون بیشتری را در مورد راه‌اندازی فضای کاری ارائه می‌دهند.

محدودیت های CPython

CPython تعداد کمی از بهینه‌سازی‌های عملکرد موجود در نسخه‌های دیگر Python را دارد. این یک کامپایلر بومی JIT (فقط به موقع)، کتابخانه های ریاضی تسریع شده، یا افزوده های شخص ثالث برای عملکرد ندارد. همه اینها ویژگی هایی هستند که می توانید به تنهایی اضافه کنید، اما همراه نیستند. باز هم، این به طور هدفمند انجام می شود تا حداکثر سازگاری را تضمین کند و به CPython اجازه دهد تا به عنوان یک پیاده سازی مرجع عمل کند. اما این بدان معناست که هر گونه بهینه سازی عملکرد به توسعه دهنده بستگی دارد.

علاوه بر این، CPython تنها یک مجموعه پایه از ابزارها را برای کار با پایتون فراهم می کند. به عنوان مثال، مدیر بسته pip، بسته‌ها را از مخزن بسته PyPI بومی پایتون دریافت و نصب می‌کند. Pip حتی باینری های از پیش کامپایل شده (از طریق قالب توزیع چرخ) را نصب می کند، اما هیچ وابستگی ای را که بسته ها ممکن است در خارج PyPI داشته باشند نصب نمی کند.

آناکوندا پایتون

Anaconda، تولید شده توسط Anaconda Inc. (قبلاً Continuum Analytics)، برای توسعه دهندگان Python طراحی شده است که به توزیع با پشتیبانی یک ارائه دهنده تجاری و با برنامه های پشتیبانی برای شرکت ها. موارد استفاده اصلی برای Anaconda Python ریاضی، آمار، مهندسی، تجزیه و تحلیل داده‌ها، یادگیری ماشین و برنامه‌های مرتبط است.

از موارد برای آناکوندا پایتون استفاده کنید

Anaconda بسیاری از رایج‌ترین کتابخانه‌های مورد استفاده در کارهای تجاری و علمی پایتون (SciPy، NumPy، Numba و غیره) را در بسته‌بندی می‌کند و بسیاری از آنها را از طریق یک سیستم مدیریت بسته سفارشی در دسترس قرار می‌دهد.

آناکوندا در نحوه ادغام تمام این قطعات از توزیع های دیگر متمایز است. پس از نصب، Anaconda یک برنامه دسکتاپ – Anaconda Navigator – ارائه می‌کند که همه جنبه‌های محیط Anaconda را از طریق یک رابط کاربری گرافیکی مناسب در دسترس قرار می‌دهد. یافتن کامپوننت‌ها، به‌روز نگه‌داشتن آن‌ها و کار با آن‌ها با Anaconda بسیار آسان‌تر از CPython است.

اندازه گیری سرعت مهندسی تمام مقدار را از دست می دهد

یک مزیت دیگر روشی است که Anaconda اجزای خارج از اکوسیستم پایتون را در صورتی که برای یک بسته خاص مورد نیاز هستند، کنترل می کند. مدیر بسته conda که به طور خاص برای Anaconda ایجاد شده است، نصب بسته‌های Python و نیازهای نرم‌افزار خارجی شخص ثالث را انجام می‌دهد.

محدودیت های آناکوندا پایتون

از آنجایی که Anaconda شامل بسیاری از کتابخانه‌های مفید است و می‌تواند حتی تعداد بیشتری را تنها با چند ضربه کلید نصب کند، اندازه نصب Anaconda می‌تواند بسیار بزرگتر از CPython باشد. نصب اولیه CPython حدود ۱۰۰ مگابایت اجرا می شود. اندازه نصب آناکوندا می تواند به گیگابایت برسد. این می تواند در شرایطی که محدودیت منابع دارید، مشکل ساز باشد.

یکی از راه‌های کاهش ردپای آناکوندا، نصب Miniconda است، نسخه‌ای از آناکوندا که تنها شامل حداقل مطلق قطعات مورد نیاز برای راه‌اندازی و اجرا می‌شود. سپس می‌توانید بسته‌هایی را که مناسب می‌دانید به Miniconda اضافه کنید، با توجه به اینکه هر قطعه چقدر فضای مصرف می‌کند.

ActiveState Python

مانند Anaconda، ActiveState Python توسط یک شرکت انتفاعی ایجاد و نگهداری می‌شود—در در این مورد، ActiveState، که تعدادی از زمان های اجرا زبان را همراه با چند زبانه Komodo IDE به بازار عرضه می کند.

از موارد برای ActiveState Python

استفاده کنید

ActiveState Python کاربران سازمانی و دانشمندان داده را هدف قرار داده است—افرادی که می‌خواهند از Python استفاده کنند، اما نمی‌خواهند تلاش زیادی برای مونتاژ و مدیریت نصب پایتون صرف کنند. ActiveState از مدیر بسته pip معمولی Python استفاده می کند، اما همچنین چند مورد را نیز فراهم می کند. صدها کتابخانه رایج به‌عنوان بسته‌های تأییدشده، به همراه برخی از کتابخانه‌های رایج با وابستگی‌های شخص ثالث مانند کتابخانه هسته ریاضی اینتل.

محدودیت های ActiveState Python

یک اشکال احتمالی در رویکرد ActiveState برای مدیریت بسته‌هایی با وابستگی‌های خارجی وجود دارد. اگر می خواهید به یک نسخه جدیدتر از یک پروژه با وابستگی های پیچیده ارتقا دهید (به عنوان مثال، TensorFlow)، باید نصب ActiveState Python خود را نیز ارتقا دهید. در محیط هایی که توسعه تمایل دارد به نسخه خاصی از یک پروژه گره خورده باشد، این موضوع کمتر مطرح است. اما در محیط‌هایی که توسعه با نسخه‌های پیشرفته دنبال می‌شود، ممکن است مشکل ایجاد کند.

به‌علاوه، نسخه‌های ActiveState پایتون معمولاً از آخرین نسخه CPython عقب‌تر هستند. به عنوان مثال، از زمان نوشتن این مقاله، آخرین نسخه پشتیبانی شده پایتون ۳.۱۲ است، اما ActiveState فقط ۳.۱۰ را ارائه می دهد.

PyPy

یک جایگزین کشویی برای مفسر CPython، PyPy از کامپایل JIT برای سرعت بخشیدن به اجرای برنامه های Python استفاده می کند. بسته به وظیفه، دستاوردهای عملکرد می تواند چشمگیر باشد.

از موارد برای PyPy استفاده کنید

یک شکایت رایج در مورد Python به طور کلی، و CPython به طور خاص، سرعت است. به طور پیش فرض پایتون چندین برابر کندتر از C اجرا می شود، گاهی اوقات صدها برابر کندتر. PyPy JIT کد پایتون را به زبان ماشین کامپایل می‌کند و به طور متوسط ​​۴.۸ برابر سرعت بیشتری نسبت به CPython دارد. برخی از کارها تا ۵۰ برابر سریعتر اجرا می شوند.

بهترین بخش این است که برای باز کردن قفل این دستاوردها، هیچ تلاشی از سوی توسعه دهنده لازم نیست. CPython را با PyPy تعویض کنید، و در بیشتر موارد کار شما تمام شده است. همچنین، همه پلتفرم‌های اصلی در نسخه‌های ۶۴ بیتی پشتیبانی می‌شوند—Windows، لینوکس سازگار با CentOS 7 (هم ARM64 و هم Intel) و macOS  (همچنین ARM64 و Intel).

پایگاه داده بدون سرور چیست؟ محاسبه الاستیک برای ردیف داده

محدودیت های PyPy

PyPy همیشه با برنامه‌های Python “خالص” بهترین عملکرد را داشته است. بسته‌های پایتون که با کتابخانه‌های C مانند NumPy ارتباط دارند، به دلیل روشی که PyPy از رابط‌های باینری بومی CPython تقلید می‌کند، عملکرد خوبی نداشته است. با گذشت زمان، توسعه‌دهندگان PyPy از این مشکل چشم پوشی کردند و PyPy را با اکثر بسته‌های Python که به پسوندهای C وابسته هستند، سازگارتر کردند. به طور خلاصه، پشتیبانی از برنامه های افزودنی C هنوز محدود است، اما بسیار کمتر از گذشته.

یکی دیگر از نقاط ضعف احتمالی PyPy اندازه زمان اجرا است. هسته اجرا CPython در ویندوز، به استثنای کتابخانه استاندارد، حدود ۶ مگابایت است، در حالی که زمان اجرا PyPy حدود ۴۳ مگابایت است.

Jython

JVM (ماشین مجازی جاوا) به عنوان زمان اجرا برای بسیاری از زبان ها علاوه بر جاوا عمل می کند. این فهرست شامل Kotlin، Groovy، Scala، Clojure، و بله، Python از طریق پروژه Jython است.< /p>

از موارد برای Jython استفاده کنید

Jython کد Python 2.x را در بایت کد JVM کامپایل می کند و برنامه حاصل را روی JVM اجرا می کند. در برخی موارد یک برنامه کامپایل شده توسط Jython سریعتر از همتای CPython خود اجرا می شود، اما نه همیشه.

بزرگترین مزیتی که جیتون ارائه می کند، قابلیت همکاری مستقیم با بقیه اکوسیستم جاوا است. اجرای پایتون در JVM به توسعه دهندگان پایتون اجازه می دهد تا از اکوسیستم عظیمی از کتابخانه ها و چارچوب هایی استفاده کنند که در غیر این صورت قادر به استفاده از آن نبودند. به همین ترتیب، Jython به توسعه دهندگان جاوا اجازه می دهد تا از کتابخانه های Python استفاده کنند.

محدودیت های جیتون

بزرگترین اشکال برای جیتون این است که فقط از شاخه ۲.x پایتون پشتیبانی می کند. پشتیبانی از Python 3.x در حال توسعه است، اما تاکنون چیزی منتشر نشده است.

همچنین توجه داشته باشید که در حالی که جیتون پایتون را به JVM می آورد، پایتون را به اندروید نمی آورد. از آنجایی که در حال حاضر هیچ پورتی از Jython برای Android وجود ندارد، از Jython نمی توان برای توسعه برنامه های Android استفاده کرد.

IronPython

همانطور که Jython پیاده‌سازی پایتون در JVM است، IronPython پیاده‌سازی پایتون در زمان اجرا خالص است. ، یا CLR (زمان اجرای زبان مشترک). IronPython از DLR (زمان اجرای زبان پویا) CLR استفاده می کند تا به برنامه های پایتون اجازه دهد با همان درجه پویایی اجرا شوند که در CPython انجام می دهند.

از موارد برای IronPython

استفاده کنید

IronPython مانند Jython یک پل است. مورد استفاده بزرگ، قابلیت همکاری بین پایتون و جهان دات نت است. مجموعه‌های .Net موجود را می‌توان در برنامه‌های IronPython با استفاده از دستور ورود و دستکاری شیء بومی پایتون بارگذاری کرد. همچنین می توان کد IronPython را در یک اسمبلی کامپایل کرد و آن را همانطور که هست اجرا کرد یا از زبان های دیگر فراخوانی کرد. با این حال، توجه داشته باشید که MSIL (زبان میانی مایکروسافت) در اسمبلی نمی‌تواند مستقیماً از سایر زبان‌های Net. زیرا با مشخصات زبان رایج مطابقت ندارد.

محدودیت های IronPython

IronPython از Python 2.7 و همچنین Python 3 پشتیبانی می کند، اما آخرین نسخه Python 3 پشتیبانی شده Python 3.4 است. این امر تا حد زیادی میزان اکوسیستم پایتون موجود را که می‌تواند با آن کار کند، محدود می‌کند، زیرا نسخه ۳.۴ مدتی است که پشتیبانی نمی‌شود.

WinPython

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

GitHub Copilot Chat در یک پیش نمایش برای مشاغل موجود است

از موارد برای WinPython استفاده کنید

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

خود CPython در قالب باز کردن بسته‌بندی و اجرا می‌آید – به آن “توزیع مجدد قابل تعبیه” می‌گویند – اما با حداقل بسته‌های تکمیلی مستقر شده است. در مقابل، WinPython مجموعه‌ای از بسته‌های مبتنی بر علم داده – NumPy، Pandas، SciPy، Matplotlib، و غیره را در بسته‌بندی می‌کند تا بتوان آنها را بلافاصله، بدون مراحل نصب اضافی، استفاده کرد. همچنین شامل یک کامپایلر C/C++ می‌شود، زیرا بسیاری از ماشین‌های ویندوز دارای یکی نیستند و بسیاری از برنامه‌های افزودنی پایتون به آن نیاز دارند یا می‌توانند از آن استفاده کنند.

محدودیت های WinPython

یکی از محدودیت‌های WinPython این است که ممکن است به‌طور پیش‌فرض برای برخی موارد استفاده بیش از حد را شامل شود. برای رفع این مشکل، سازندگان WinPython یک نسخه «صفر» از هر نسخه WinPython ارائه می‌کنند که تنها حاوی حداقل‌ترین نصب ممکن از محصول است. بسته‌های بیشتری را می‌توان بعداً اضافه کرد، یا با ابزار pip خود پایتون یا ابزار WPPM WinPython.

قابل حمل پایتون

Python Portable زمان اجرا CPython در یک بسته مستقل است. این به لطف مجموعه PortableDevApps از برنامه‌های مشابه مستقل ارائه شده است.

از موارد برای Python Portable استفاده کنید

مانند WinPython، Python Portable شامل مجموعه‌ای از بسته‌ها برای محاسبات علمی است – Matplotlib، Numba، SymPy، SciPy، Cython و غیره. همچنین مانند WinPython، Python Portable بدون نیاز به نصب رسمی بر روی میزبان ویندوز اجرا می شود. می تواند در هر دایرکتوری یا درایو قابل جابجایی زندگی کند. همچنین شامل Spyder IDE و مدیریت بسته pip پایتون است، بنابراین می‌توانید بسته‌ها را در صورت نیاز اضافه، تغییر یا حذف کنید.

محدودیت های Python Portable

برخلاف WinPython، Python Portable شامل کامپایلر C/C++ نیست. برای استفاده از کد نوشته شده با Cython (و در نتیجه به C کامپایل شده) باید یک کامپایلر C ارائه کنید. همچنین، آخرین نسخه پایتون ارائه شده تا این لحظه ۳.۹ است.

توزیعات آزمایشی پایتون

این توزیع‌ها تغییرات قابل توجهی در پایتون ایجاد می‌کنند—یا به این دلیل که از پایتون به عنوان نقطه شروع برای چیزی کاملاً جدید استفاده می‌کنند، یا به این دلیل که در حال ایجاد تغییرات استراتژیک در پایتون استاندارد هستند. به طور کلی، این پایتون ها هنوز برای استفاده در تولید توصیه نمی شوند.

اگر در آینده قابل پیش‌بینی با پایگاه کد Python 2.x زندگی می‌کنید، ممکن است بخواهید مقاله ما را در مورد توزیع‌های آزمایشی Python که Python 2.x را زنده نگه می‌دارد بررسی کنید.

MicroPython

MicroPython حداقل زیرمجموعه‌ای از زبان Python را ارائه می‌کند که می‌تواند روی سخت‌افزار بسیار پایین‌تری مانند میکروکنترلرها اجرا شود. MicroPython پایتون ۳.۴ را با برخی تفاوت‌ها پیاده‌سازی می‌کند. . اگر پایتون را می‌شناسید، نوشتن کد MicroPython آسان است، اما ممکن است کدهای موجود همانطور که هست اجرا نشوند.

RustPython

زمان اجرای پیش‌فرض پایتون، که به زبان C نوشته شده است، توسط بسیاری از حساب‌ها کد باکیفیت است که تعداد تله‌های انفجاری در معرض زبان C را به حداقل می‌رساند. پروژه RustPython یک زمان اجرا پایتون را در زبان Rust پیاده‌سازی می‌کند و از Rust بهره می‌برد. ایمنی و سرعت حافظه در حال حاضر تنها زیر مجموعه ای از نحو پایتون را پشتیبانی می کند، اما در حال پیشرفت است. حتی می‌توانید یک نسخه نمایشی زنده را در مرورگر امتحان کنید.