auto py to exe
آموزش تبدیل فایل های پایتون (py) به فایل اجرایی (exe)
در این آموزش، درقالب یک مثال [و کدی که بهتون میدیم] یک فایل پایتون (با پسوند py) رو به یک فایل اجرایی (exe) تبدیل میکنیم! و این آموزش کاملاً عملی و قدم به قدم است! تاکید میکنم و اصرار میکنم، با مثال خودمون پیش برید و دقیقاً کارهایی که گفتیم رو انجام بدید تا اول مبحث رو یاد بگیرید، بعد حالا بعداً برید سراغ فایل خودتون!
مثال: یک برنامه ساده!
برای اینکه هر کسی بتونه از این آموزش استفاده کنه! یک کد همینجوری بهتون میدیم، اینو لطفاً در نظر بگیرید و آموزش رو با همین دنبال کنید!
import tkinter root = tkinter.Tk() root.title("کاری از گروه آموزشی کولاک") root.geometry("350x40") Koolac_Title=tkinter.Label(root,text="By: Sajjad Rahmani \n (www.Koolac.Org)") Koolac_Title.pack() root.mainloop()
این کد کار عجیب غریبی نمیکنه! تهش یه پنجره باز میکنه به صورت زیر!: [اما لطفاً نخواید که خط به خط توضیح بدم، چون مربوط به پکیج tkinter است و اگر قرار باشه اون رو توضیح بدیم، کلاً موضوع آموزش منحرف میشه! هدف اینه که فقط شما و من یک راه رو بریم توی آموزش و باهم پیش بریم! برای همین این کد رو در اختیارتون قرار میدیم!]
ولی چون دوست داشتیم دقیقاً مثل هم پیش بریم، یه کد همین شکلی براتون گذاشتم که دقیقاً مثل هم پیش بریم! [در ضمن شاید بگید نیاز به نصب اون پکیج tkinter که در برنامه import شده نیست؟! جواب: خیر! اگر پایتون نصب باشه، اون پکیج همینشکلی نصب هست و نیاز نیست ما نصبش کنیم!]
خب! حالا همین کد ساده رو یه جایی ذخیره کنید! (اگر دوست دارید با ما پیش برید و دقیقاً مثل یکی من باشه، توی Desktop خودتون، یک پوشه درست کنید به اسم Koolac ! حالا توی این پوشه، همون فایلی که میخواید رو قرار بدید!) و مثلاً اسم فایل رو هم من میذارم Sajjad !
پس الان مسیر فایل ما هست:
C:\Users\Parsian\Desktop\Koolac\Sajjad.py
البته قطعاً آدرس شما فرق خواهد کرد!
چجوری آدرس فایل خودمون رو پیدا کنیم؟!
روی فایلتون مثل تصویر زیر راست کلیک کنید! یه گزینهای وجود داره به اسم Properties ! اونو انتخاب کنید! [در تصویر زیر، دورش کادر سبز کشیدم!]
حالا در تصویر شبیه زیر، چندتا tab وجود داره! برید به تبِ Security ! [در تصویر زیر، دورش کادر قرمز کشیدم!]
میبینید که جلوی Object name آدرس فایل رو نوشته! [در تصویر زیر، دورش یه کادر سبز کشیدم!]
خب پس الان شما یک فایل دارید که به صورت ساده چاپ میکنه www.Koolac.Org و آدرسش رو هم میدونید!
بریم سراغ تبدیل فایل پایتون (با پسوند py) به فایل اجرایی (با پسوند exe) !
برای این تبدیل نیازه یک پکیج توی پایتون نصب کنیم! اگر نمیدونید پکیج چیست، به مطلب پکیج در پایتون چیست و چه کاربردی دارد مراجعه کنید!
و اگر آموزش نصب پکیجها رو بلد نیستید به آموزش نصب پکیج های مختلف در پایتون مراجعه کنید! [هر چند ما یکی از روشهای نصب رو در این آموزش میگیم، اما اگر دوست داشتید روشهای دیگه رو ببینید و از طریق اونها نصب کنید، به همون مطلب مراجعه کنید!]
خب! پکیجی که میخوایم نصب کنیم، اسمش هست: pyinstaller !
برای نصب، از روی صفحه کلید دکمهی windows رو با دکمه R بگیرید [باهم بگیرید]! پنجرهای شبیه زیر باز میشه!
توی این پنجره تایپ کنید cmd و ok رو بزنید!
حالا یک صفحه سیاه براتون باز شده [که بهش میگن command window]! اینترنتون رو وصل کنید و توی این صفحه سیاه تایپ کنید!:
pip install pyinstaller
مثل تصویر زیر:
و بعد دکمه enter رو بزنید و منتظر بمونید تا نصب بشه! بعد از اینکه نصب بشه، صفحه شبیه تصویر زیر میشه!
پس فرآیند نصب پکیج pyinstaller هم تموم شد! اون پنجره سیاه رو هم ببندید! بریم که فایل پایتون خودمون رو تبدیل کنیم به exe !
تبدیل فایل py به exe !
برید توی هموون پوشهای که فایل پایتون خودتون رو قرار دادید!
حالا همینطور که دکمه shift رو نگه داشتید، راست کلیک کنید! [منظورم این نیست که رو فایل راست کلیک کنید! یه جایی از همون پوشه که فضای خالی زیاد داره! روی همونجا shift رو بگیرید و بعد راست کلیک کنید! نه روی فایل!]
بعد چیزی شبیه تصویر زیر باز میشه! روی open command window here کلیک کنید!
حالا عبارت زیر رو تایپ کنید!
pyinstaller Sajjad.py
و بعد enter بزنید و کمی صبر کنید!
دقت کنید که: اون Sajjad.py اسم فایل من بود! اگر اسم فایل شما مثلاً بود AliReza.py فقط کافیه بهجای اون Sajjad.py قرار بدید AliReza.py همین! یا هر اسم دیگه! یادآوری میکنم اون py هم که پسوند فایلهای پایتون (python) هست!
بعد از اینکه صبر کردید تا کار اون صفحه سیاه (یعنی Command Window) تموم بشه! به همون جایی که فایل پایتون خودتون بود، دقت کنید!
میبینید که مثل تصویر زیر، چند تا پوشه و … درست شده!
برید توی پوشه dist ! میبینید یک پوشه وجود داره به اسم Sajjad [همون اسم فایلتون!] اون رو هم باز کنید!
بعد میبینید یه عالمه چیز میز وجود داره! توی اون چیز میزا بگردید دنبال یه فایلی به اسم Sajjad.exe ! [برای بار nاُم تاکید میکنم که اون Sajjad اسم فایل من بود، ممکنه اسم فایل شما یه چیز دیگه باشه!]
راستی اون چیزمیزای دیگه، همه فایلهای وابسته به فایل شما هستن!
همون فایل Sajjad.exe رو اجرا کنید و یکم صبر کنید!
میبینید که برنامه اجرا میشه، ولی اون پنجره سیاه هم باز میشه! (یعنی command window)!
الان احتمالاً به دوتا چیز دارید اعتراض میکنید!
1- اون همه چیز میز که بدرد نمیخوره، من فقط یه فایل میخوام!
2- اون پنجره سیاه هم که خیلی نقص بزرگی است! و اصلاً دوست ندارید باشه!
خب بیایم برای حل این مشکلات، اولاً همهی اون پوشهها و … [بجز همون فایل اصلی خودمون، یعنی Sajjad.py] رو پاک کنیم!
بعد مجدداً توی یک فضای خالی از جایی که فایل Sajjad.py رو قرار دادیم، مادامی که shift رو نگه داشتیم، راست کلیک کنیم!
و بعد گزینه open command window here رو بزنیم! و این بار تایپ کنیم:
pyinstaller --onefile -w Sajjad.py
یه توضیح بدم! اون
–onefile
اعتراض اول شما رو حل میکنه! و دیگه همه رو توی یک فایل قرار میده!
و اون
-w
اعتراض دوم شما رو حل میکنه! و دیگه اون command window رو بهتون نشون نمیده!
خب بعد از اینکه کار ساخت exe توسط command window تموم شد! دوباره برید توی همون پوشهای که Sajjad.py رو قرار داده بودید! میبینید که ای دل غافل! بازهم همون پوشهها و … هم هست که!
ولی صبور باشید! برید توی همون پوشه dist ! دیدید فقط یک فایل مشاهده میکنید؟! این هم از فایل exe شما! همین فایل رو میتونید بدید به این و اون و استفاده کنن!
تذکر!
حواستون باشه! اگر مثلاً دارید GUI کار میکنید و عکس میذارید و فونت میذارید و …! باید حواستون باشه که اون موارد، در کامپیوتر شخصی که بهش فایل رو میدید نیست! پس مشکل پیش میاد براتون! پس حواستون باشه که واسش یک فکری بکنید! هرچند اون موارد به این آموزش هیچ ربطی نداره و ملاحظاتی است که خودتون باید انجام بدید در همون طراحی GUI ! ولی گفتم که گفته باشم!
- ۰۰/۱۲/۱۵
سلام خسته نباشید
من وقتی کد
pyinstaller test.py
وارد میکنم همچین اروری میده:
'pyinstaller' is not recognized as an internal or external command,
operable program or batch file.
لطفا بگید من چیکار کنم