ساخت نسخه ویندوز 💻¶
خب رفیق، اگه میخوای WarpScanner رو روی ویندوز خودت از سورس بیلد کنی، اینجا قدم به قدم با هم پیش میریم.
1. نصب پایتون 🐍¶
اولین و مهمترین قدم، نصب پایتونه.
- برو به سایت رسمی پایتون (python.org) و آخرین نسخه پایدار رو دانلود کن.
- مهم برای ویندوز 7: اگه هنوز از ویندوز 7 استفاده میکنی، باید از نسخههای پایتون 3.8 یا قدیمیتر استفاده کنی. میتونی نسخههای قدیمیتر رو از همون سایت رسمی پیدا کنی (مثلاً Python 3.8.10).
- نکته نصب: موقع نصب پایتون، حتماً تیک گزینه "Add Python X.X to PATH" رو بزن. این کار باعث میشه بتونی راحتتر از دستورات
pythonوpipتوی خط فرمان (CMD) استفاده کنی.
نصب چند نسخه پایتون
اگه نیاز داری هم برای ویندوزهای جدید و هم برای ویندوز 7 بیلد بگیری، میتونی هر دو نسخه پایتون (مثلاً آخرین نسخه و نسخه 3.8) رو نصب داشته باشی. موقع اجرای دستورات بیلد، فقط باید حواست باشه که مسیر درست همون نسخه پایتون مورد نظرت رو بدی.
بعد از نصب پایتون خوشگلمون، یه نفس تازه کن (یا همون قهوه که گفتی 😉)، و بیا سراغ ادامه ماجرا.
2. انتخاب روش بیلد¶
برای ساخت فایل اجرایی (.exe) از اسکریپت پایتون روی ویندوز، دو تا روش متداول داریم:
روش اول: استفاده از PyInstaller (سادهتر)¶
PyInstaller ابزار محبوب و نسبتاً سادهایه برای تبدیل اسکریپت پایتون به فایل اجرایی.
-
نصب PyInstaller: خط فرمان (CMD) رو باز کن و این دستور رو بزن:
-
نصب کتابخانههای مورد نیاز برنامه: برنامه WarpScanner به یه سری کتابخونههای دیگه هم نیاز داره. باید اونها رو هم با
(لیست بالا بر اساس اطلاعات قبلی ، حتماً لیست دقیق رو ازpipنصب کنی. مهمترینهاش اینان (ممکنه لیست کاملتر باشه، به فایلrequirements.txtاگه وجود داره نگاه کن):requirements.txtپروژه چک کن) -
آمادهسازی پوشه پروژه:
- با دستور
cdتوی CMD، به مسیری برو که فایل اصلی پایتون برنامه (مثلاً اسمشWarpScanner.pyباشه) قرار داره. - آیکون (اختیاری): اگه میخوای فایل
exeآیکون داشته باشه، یه فایل آیکون با فرمت.pngو اسمicon.pngتوی همین پوشه قرار بده. اگه آیکون نداری یا نمیخوای، مشکلی نیست، فقط باید بخش مربوط به آیکون رو از دستور بیلد حذف کنی.
- با دستور
-
اجرای دستور بیلد PyInstaller: حالا دستور اصلی رو باید بزنی. چون ممکنه چند نسخه پایتون نصب داشته باشی، بهتره مسیر کامل فایل
pyinstaller.exeمربوط به اون نسخه پایتون که میخوای باهاش بیلد بگیری رو مشخص کنی.-
برای ویندوز 8 و بالاتر (با پایتون مدرن، مثلاً 3.11):
C:\Users\<نام-کاربری-شما>\AppData\Local\Programs\Python\Python311\Scripts\pyinstaller.exe WarpScanner.py -w --onefile -i icon.png- توضیحات:
<نام-کاربری-شما>رو با نام یوزر خودت توی ویندوز عوض کن.Python311رو با ورژن پایتونی که نصب کردی و میخوای استفاده کنی جایگزین کن (مثلاًPython310,Python312).WarpScanner.pyاسم فایل اصلی پایتون برنامه است (اگه اسمش فرق داره، عوضش کن).-w: باعث میشه موقع اجرای برنامه، پنجره سیاه CMD باز نشه (برای برنامههای گرافیکی مثل این خوبه).--onefile: سعی میکنه همه چی رو توی یه فایلexeتکی جمع کنه.-i icon.png: آیکون رو به فایلexeاضافه میکنه. اگه فایلicon.pngرو نداری، این قسمت (-i icon.png) رو کلاً پاک کن.
- توضیحات:
-
برای ویندوز 7 (با پایتون 3.8):
C:\Users\<نام-کاربری-شما>\AppData\Local\Programs\Python\Python38\Scripts\pyinstaller.exe WarpScanner.py -w --onefile -i icon.png- مثل دستور بالا، حواست به جایگزین کردن
<نام-کاربری-شما>و اسم فایل پایتون باشه. - مطمئن شو که مسیر به پوشه
Python38اشاره میکنه. - اگه آیکون نداری،
-i icon.pngرو حذف کن.
- مثل دستور بالا، حواست به جایگزین کردن
-
-
پیدا کردن فایل نهایی: بعد از اینکه دستور بیلد با موفقیت اجرا شد، فایل
exeنهایی رو میتونی توی پوشهای به اسمdist(که داخل همون پوشه پروژهات ساخته میشه) پیدا کنی. (برای مرحله بعد به این فایل نیاز داریم)
روش دوم: استفاده از Nuitka (پیشرفتهتر)¶
Nuitka یه کامپایلر پایتونه که سعی میکنه کد پایتون رو به کد C تبدیل و بعد کامپایل کنه. این روش معمولاً فایل خروجی بهینهتر و سریعتری میده ولی مراحلش یه کم پیچیدهتره.
- نصب Nuitka:
- نصب کتابخانههای مورد نیاز برنامه: برنامه WarpScanner به یه سری کتابخونههای دیگه هم نیاز داره. باید اونها رو هم با
pipنصب کنی. مهمترینهاش اینان (ممکنه لیست کاملتر باشه، به فایلrequirements.txtاگه وجود داره نگاه کن): (لیست بالا بر اساس اطلاعات قبلی ، حتماً لیست دقیق رو ازrequirements.txtپروژه چک کن) -
نصب کامپایلر C (MinGW-w64): Nuitka برای کامپایل کردن به یه کامپایلر C نیاز داره. یکی از بهترین گزینهها برای ویندوز MinGW-w64 هست.
-
نصب UPX (اختیاری ولی بهشدت پیشنهادی): UPX ابزاریه که فایلهای اجرایی رو فشرده میکنه و حجم فایل نهایی رو خیلی کم میکنه. Nuitka میتونه ازش استفاده کنه.
- به صفحه دانلود UPX در گیتهاب برو و آخرین نسخه برای ویندوز رو دانلود کن.
- فایل
upx.exeرو از حالت فشرده خارج کن و در یه مسیر مشخص قرار بده (مثلاًC:\upx\upx.exe). مسیرش رو برای دستور بیلد لازم داریم.
-
آمادهسازی پوشه پروژه:
- مثل روش PyInstaller، با
cdبه پوشه پروژه برو. - آیکون (اختیاری): برای Nuitka، فرمت آیکون باید
.icoباشه. اگه آیکون داری، فایلی به اسمicon.icoتوی پوشه پروژه قرار بده.
- مثل روش PyInstaller، با
-
اجرای دستور بیلد Nuitka: دستور بیلد Nuitka معمولاً طولانیتر و پر از گزینه است.
- برای ویندوز 8 و بالاتر (با پایتون مدرن، مثلاً 3.11):
C:\Users\<نام-کاربری-شما>\AppData\Local\Programs\Python\Python311\python.exe -m nuitka --mingw64 --standalone --follow-imports --remove-output --jobs=2 --enable-plugin=tk-inter --enable-plugin=upx --upx-binary="C:\upx\upx.exe" --windows-icon-from-ico="icon.ico" --windows-console-mode=disable --include-package-data=customtkinter --include-package=requests,cryptography,icmplib,retrying,pyperclip,yaml,PIL WarpScanner.py -
برای ویندوز 7 (با پایتون 3.8):
C:\Users\<نام-کاربری-شما>\AppData\Local\Programs\Python\Python38\python.exe -m nuitka --mingw64 --standalone --follow-imports --remove-output --jobs=2 --enable-plugin=tk-inter --enable-plugin=upx --upx-binary="C:\upx\upx.exe" --windows-icon-from-ico="icon.ico" --windows-console-mode=disable --include-package-data=customtkinter --include-package=requests,cryptography,icmplib,retrying,pyperclip,yaml,PIL WarpScanner.py -
توضیحات مهم دستور Nuitka:
<نام-کاربری-شما>,Python311/Python38, وWarpScanner.pyرو مثل قبل با مقادیر درست جایگزین کن.--mingw64: مشخص میکنه که از کامپایلر MinGW استفاده بشه.--standalone: سعی میکنه تمام نیازمندیها رو کنار فایل اجرایی کپی کنه.--follow-imports: تمام ماژولهایی که ایمپورت شدن رو پیدا و شامل میکنه.--remove-output: بعد از اتمام کار، فایلهای موقت بیلد رو پاک میکنه.--jobs=2: تعداد هستههای CPU که برای بیلد استفاده بشه (میتونی بیشترش کنی اگه CPU قویتری داری).--enable-plugin=tk-inter: پلاگین لازم برای برنامههایی که از Tkinter (مثل CustomTkinter) استفاده میکنن.--enable-plugin=upx: پلاگین فشردهسازی با UPX رو فعال میکنه.--upx-binary="C:\upx\upx.exe": مسیر فایلupx.exeرو بهش میده. اگه UPX رو نصب نکردی یا نمیخوای استفاده کنی، این گزینه و گزینه--enable-plugin=upxرو حذف کن.--windows-icon-from-ico="icon.ico": آیکون.icoرو به فایل اجرایی اضافه میکنه. اگه فایلicon.icoرو نداری، این گزینه رو حذف کن.--windows-console-mode=disable: پنجره سیاه CMD رو موقع اجرا نشون نمیده.--include-package-data=customtkinter: فایلهای جانبی (مثل تمها)ی CustomTkinter رو شامل میکنه.--include-package=...: بعضی وقتها لازمه به Nuitka بگی صراحتاً کدوم پکیجها رو کامل شامل کنه. (لیست پکیجها در دستور بالا ممکنه کامل نباشه، حتماً با نیازمندیهای پروژه چک کن)
- برای ویندوز 8 و بالاتر (با پایتون مدرن، مثلاً 3.11):
-
پیدا کردن فایل نهایی: بعد از اتمام بیلد Nuitka، یه پوشه با پسوند
.distو همنام فایل پایتونت ساخته میشه (مثلاًWarpScanner.dist). فایلexeنهایی داخل این پوشه قرار داره. (برای مرحله بعد به این فایل نیاز داریم)
3. کپی کردن پوشههای ضروری (از نسخههای پرتابل) 📁¶
خب، کار هنوز تموم نشده! فایل .exe ای که با PyInstaller یا Nuitka ساختی، به تنهایی کامل نیست و برای کار کردن درست (مخصوصاً توابع مربوط به WARP و اسکن)، به یه سری پوشه و فایلهای دیگه نیاز داره که کنارش باشن.
-
دانلود نسخه پرتابل: برو به قسمت Releases پروژه (احتمالاً توی گیتهاب) و یکی از نسخههای پرتابل (Portable) رسمی برنامه رو دانلود کن. سعی کن نسخهای رو دانلود کنی که با سورس کدی که ازش بیلد گرفتی، مطابقت داشته باشه (معمولاً آخرین نسخه).
-
پیدا کردن پوشههای مورد نیاز: فایل زیپ نسخه پرتابل رو باز کن و دنبال این پوشهها بگرد:
hy2imgsip_rangexray
-
کپی کردن پوشهها:
- حالا این پوشهها (
hy2,imgs,ip_range,xray) رو کپی کن. - برو به مسیری که فایل
.exeخودت رو اونجا پیدا کردی:- اگه از PyInstaller با
--onefileاستفاده کردی، فایلexeتوی پوشهdistقرار داره. - اگه از Nuitka استفاده کردی، فایل
exeتوی پوشه.dist(مثلاًWarpScanner.dist) قرار داره.
- اگه از PyInstaller با
- پوشههایی که کپی کرده بودی رو دقیقاً کنار فایل
.exeخودت Paste کن.
- حالا این پوشهها (
نکته مهم درباره نسخههای قدیمی
توجه: این چهار پوشه (hy2, imgs, ip_range, xray) برای آخرین نسخه برنامه ضروری هستن. اگه داری از سورس کد قدیمیتری بیلد میگیری و نسخه پرتابل قدیمیتری رو هم دانلود کردی، ممکنه همه این پوشهها توی اون نسخه پرتابل وجود نداشته باشن. اشکالی نداره! فقط هر کدوم از این چهار تا پوشه رو که توی نسخه پرتابلِ دانلود شده پیدا کردی، کپی کن و کنار فایل exe خودت قرار بده. باقی موندهها رو لازم نیست کپی کنی.
تبریک! 🎉
حالا فایل exe شما به همراه پوشههای ضروریش آماده استفاده!
خب، اینم از راهنمای کامل بیلد گرفتن روی ویندوز به همراه نکته مهم کپی کردن فایلهای جانبی. امیدوارم به کارت بیاد. موفق باشی! 💪