فعالیت محلی؛ ساخت exe در مرورگر انجام نمیشه. قبل از بستهبندی، اجرای tasks_app.py رو آزمایش کن. PyInstaller یک بستهٔ بیرونی هست و برنامه و وابستگیهای لازم رو برای اجرای مستقل جمع میکنه؛ فایل اجرایی جایگزین آزمون کردن برنامه نیست. داخل محیط پروژه در Windows:
.\.venv\Scripts\python.exe -m pip install pyinstaller
.\.venv\Scripts\python.exe -m PyInstaller --onedir --name MyTasks tasks_app.py
.\dist\MyTasks\MyTasks.exe
اول نسخهٔ پوشهای و دارای کنسول رو بساز تا خطاها دیده بشن. خروجی در dist هست؛ کل پوشهٔ dist\MyTasks رو منتقل کن، نه فقط exe. بعد از موفقیت و بررسی خطاهای برنامه، نسخهٔ پنجرهای تکفایلی رو میشه ساخت:
.\.venv\Scripts\python.exe -m PyInstaller --onefile --windowed --name MyTasks tasks_app.py
حالا خروجی Windows معمولاً dist\MyTasks.exe هست. PyInstaller ابزار تبدیل بین سیستمعاملها نیست: خروجی Windows رو روی Windows بساز؛ برای macOS و Linux روی همون سیستمعامل هدف بساز و آزمون کن. نوع پردازنده و نسخه سیستمعامل مقصد هم مهمه.
برنامهٔ ما فایل تصویر یا قالب خارجی لازم نداره. اگه بعداً assets اضافه کردی، میتونی در نسخههای فعلی با --add-data "assets:assets" اون رو به بسته اضافه کنی؛ فایلهای همراه برنامه رو نسبت به Path(__file__).resolve().parent پیدا کن. دادهٔ قابل تغییر کاربر همچنان باید در پوشهٔ قابل نوشتن کاربر بمونه، چون فایلهای نسخهٔ onefile ممکنه در پوشهٔ موقت استخراج بشن.
اگه برنامه بلافاصله بسته شد، اول ساخت کنسولی رو اجرا و پیام خطا رو بخون. برای ModuleNotFoundError مفسر محیط ساخت و importهای پویا رو بررسی کن؛ فقط اگه ماژول واقعاً لازم بود از --hidden-import متناسب استفاده کن. خطای نبود عکس معمولاً مسیر یا جاافتادن assets هست؛ مشکل فارسی ممکنه به فونت و نمایش Tk مربوط باشه و باید روی دستگاه هدف دیده بشه.
آزمون تحویل: نسخهٔ ساختهشده رو در پوشهٔ تازه یا دستگاه/ماشین مجازی تمیز و سازگار بدون Python توسعه اجرا کن؛ افزودن، فارسی، ذخیره، بستن و بازکردن، و پیام خطا رو دوباره بررسی کن. فایل پروژه، محیط ساخت و نسخهٔ بستهها رو نگه دار تا بتونی خروجی رو بازسازی کنی. برای ساخت خروجی باید ابزار لازم رو روی کامپیوتر خودت دانلود و نصب کنی. این کار با خواندن درس یا اجرای تمرین مرورگر انجام نمیشه.
برای جزئیات گزینهها و سازگاری نسخهٔ نصبشده، راهنمای رسمی PyInstaller رو بخون؛ شکل نوشتن گزینهها رو با نسخهای که نصب کردی تطبیق بده.
فعالیت شما
از برنامه پایتون فایل اجرایی بساز، محل خروجی رو پیدا کن و کارکردش رو جداگانه امتحان کن.