انتشار PyOxidizer برای بسته بندی پروژه های پایتون به فایل های اجرایی مستقل

ارسال شده توسط اولین نسخه از ابزار پی اکسید کننده، که به شما امکان می دهد یک پروژه در پایتون را در قالب یک فایل اجرایی مستقل شامل مفسر پایتون و تمام کتابخانه ها و منابع لازم برای کار بسته بندی کنید. چنین فایل هایی را می توان در محیط هایی بدون نصب ابزار پایتون یا بدون توجه به نسخه مورد نیاز پایتون اجرا کرد. PyOxidizer همچنین می‌تواند فایل‌های اجرایی با پیوند استاتیکی را که به کتابخانه‌های سیستم مرتبط نیستند تولید کند. کد پروژه به زبان Rust و نوشته شده است توزیع شده توسط دارای مجوز MPL (مجوز عمومی موزیلا) 2.0.

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

برای کاربران نهایی، تحویل پروژه به عنوان یک فایل اجرایی واحد، نصب را تا حد زیادی ساده می کند و کار انتخاب وابستگی ها را حذف می کند، که برای مثال برای پروژه های پیچیده پایتون مانند ویرایشگرهای ویدیو مهم است. برای توسعه دهندگان برنامه، PyOxidizer به شما امکان می دهد در زمان سازماندهی تحویل برنامه صرفه جویی کنید، بدون نیاز به استفاده از ابزارهای مختلف برای ایجاد بسته ها برای سیستم عامل های مختلف.

استفاده از مجموعه‌های پیشنهادی نیز تأثیر مثبتی بر عملکرد دارد - فایل‌های تولید شده در PyOxidizer به دلیل حذف واردات و تعریف ماژول‌های پایه، سریع‌تر از هنگام استفاده از سیستم پایتون اجرا می‌شوند. در PyOxidizer، ماژول ها از حافظه وارد می شوند - همه ماژول های داخلی بلافاصله در حافظه بارگذاری می شوند و سپس بدون دسترسی به دیسک مورد استفاده قرار می گیرند. در آزمایش‌ها، زمان راه‌اندازی برنامه هنگام استفاده از PyOxidizer تقریباً به نصف کاهش می‌یابد.

از جمله پروژه های مشابه موجود می توان به موارد زیر اشاره کرد: PyInstaller (فایل را در یک دایرکتوری موقت باز می کند و ماژول ها را از آن وارد می کند) py2exe (مرتبط با پلتفرم ویندوز است و نیاز به چندین فایل برای توزیع دارد) py2app (مرتبط با macOS)، cx-freeze (نیاز به بسته بندی وابستگی جداگانه دارد)، شیوا и PEX (یک بسته با فرمت zip تشکیل دهید و به پایتون در سیستم نیاز دارد) نویتکا (به جای تعبیه مفسر، کد را کامپایل می کند)، روان پریشی (مرتبط با ویندوز) PyRun (توسعه اختصاصی بدون توضیح اصول عملیاتی).

در مرحله فعلی توسعه، PyOxidizer در حال حاضر قابلیت اصلی برای تولید فایل های اجرایی برای ویندوز، macOS و لینوکس را پیاده سازی کرده است. از فرصت های موجود در حال حاضر جشن گرفت فقدان محیط ساخت استاندارد، ناتوانی در تولید بسته‌ها در فرمت‌های MSI، DMG و deb/rpm، مشکلات پروژه‌های بسته‌بندی که شامل پسوندهای پیچیده در زبان C هستند، فقدان دستورات برای پشتیبانی از تحویل ("افزودن pyoxidizer"، "pyoxidizer analysis" و "به روز رسانی pyoxidizer")، پشتیبانی محدود از Terminfo و Readline، عدم پشتیبانی از نسخه های دیگر به جز Python 3.7، عدم پشتیبانی از فشرده سازی منابع، عدم توانایی در کامپایل متقابل.

منبع: opennet.ru

اضافه کردن نظر