در پایتون ابزارهای بسیاری برای ایجاد یک فایل اجرایی وجود دارد. با این کار شما میتوانید این فایل را به یک پکیج کامل تبدیل نمایید، که شامل تمام کتابخانههای مورد نیاز آن برنامه، دادهها و حتی مفسر پایتون میباشد. بدین ترتیب به راحتی میتوان این برنامه را بر روی هر سیستمی اجرا نمود؛ بدون اینکه نیاز به نصب پایتون بر روی آن سیستم باشد. به این عمل اصطلاحا فریز (freeze) کردن یک برنامه میگویند.
ابزارهای زیادی برای این کار وجود دارد که با استفاده از آنها میتوان یک برنامهی stand-alone ایجاد نمود. اما سه مورد از محبوب ترین آنها (به همراه سیستم عاملهایی که از آنها پشتیبانی میکنند) عبارتند از:
- PyInstaller: اکثر سیستم عاملها (از جمله Windows, GNU/Linux, OS X)
- Py2exe: فقط Windows
- Py2app: فقط OS X
در این مقاله قصد داریم یک برنامهی ساده با محیط گرافیکی با استفاده از ابزار PyInstaller بسازیم. برای ایجاد محیط GUI از کتابخانهی استاندارد پایتون بنام Tkinter استفاده میکنیم. این بسته به صورت پیش فرض در هنگام نصب پایتون برای شما نصب میشود و شما نیاز به نصب کتابخانهی دیگری ندارید.
ساخت برنامه
- در این آموزش از پایتون ۲ و ویندوز ۸.۱ استفاده شده است.
کد زیر یک برنامهی GUI ساده را نشان میدهد. این برنامه را با نام myapp.py بر روی سیستم خود ذخیره کنید.
from Tkinter import * root = Tk() labelframe = LabelFrame(root, text="Zero to Hero") labelframe.pack(fill="both", expand="yes") left = Label(labelframe, text="You Can be the Hero of Your Own World!") left.pack() root.mainloop()
حال در خط فرمان، به مسیر ذخیره شدهی برنامه رفته و با استفاده از دستور زیر برنامه را اجرا نمایید.
python myapp.py
پس از اجرا، پنجرهی زیر نمایش داده میشود.
حال نوبت به نصب PyInstaller است. با کمک pip میتوان این ابزار را نصب نمود.
pip install pyinstaller
سپس با استفاده از دستور زیر، از برنامهی خود یک فایل اجرایی میسازیم.
pyinstaller.exe --onefile --windowed myapp.py
به همین سادگی. بدین ترتیب فایل myapp.exe در یک فولدر بنام dist ساخته میشود. با وارد شدن به این مسیر و کلیک بر روی فایل ساخته شده، برنامه اجرا میشود. شما همچنین یک فایل با نام myapp.spec را مشاهده میکنید که برای شما ایجاد شده است. محتویات این فایل شامل تمام آپشنهایی است که برای ساخت برنامهی خود از آنها استفاده کردهاید.
ما در این جا برای ساخت این فایل اجرایی از دو آپشن استفاده نمودیم. آپشن onefile به منظور بسته بندی تمام کتابخانهها و دادههای مورد نیاز در تنها یک فایل مورد استفاده قرار میگیرد. در صورتی که از این آپشن استفاده نشود، موارد ذکر شده به صورت فایلهای جداگانه در کنار برنامهی exe قرار خواهند گرفت. از آپشن windowed به منظور عدم نمایش پنجرهی خط فرمان، در هنگام اجرای برنامه استفاده میشود. در صورتی که برنامهی شما محیط گرافیکی ندارد، نیازی به استفاده از این آپشن ندارید.
برای مشاهدهی آپشنهای بیشتر میتوانید اینجا را مشاهده کنید. برخی از این موارد بطور خودکار بر روی برنامهی شما اعمال میشود و نیازی به استفاده از آنها نخواهید داشت.
حجم فایل اجرایی ساخته شده بر روی سیستم من ۶ MiB است! شاید این حجم کمی بیش از اندازه بزرگ باشد. اما این فایل شامل مفسر پایتون، کتابخانهها و دادههای مورد نیاز برای اجرای برنامه میباشد (چرا که از آپشن onefile استفاده کردیم).
شما همچنین میتوانید آیکون دلخواهتان را به برنامهی خود اضافه نمایید. به منظور قرار دادن یک آیکون، نیاز به یک فایل .ico در مسیر جاری دارید. من در اینجا از آیکون zth.ico استفاده کرده و با استفاده از آپشن icon آن را بصورت زیر به برنامهی خود اضافه میکنم.
pyinstaller.exe --onefile --windowed --icon=zth.ico myapp.py
حال برنامهی اجرایی ساخته شده، برای من به صورت زیر نمایش داده میشود.
ما در این بخش تنها مقدمات کار با ابزار PyInstaller، برای ساخت یک برنامهی اجرایی بر روی ویندوز را فرا گرفتیم. شما میتوانید با مراجعه به راهنمای PyInstaller ، نحوهی کار با ماژولهای دیگر و سایر تنظیمات و آپشنهای پیچیدهتر را نیز مشاهده کنید.