تبدیل برنامه پایتون به فایل اجرایی exe
شاید تا حالا این سؤال براتون پیش اومده باشه که: چطور برنامههای پایتون رو روی سیستمی که روش پایتون نصب نیست اجرا کنیم؟
اگر برنامه پایتون (یعنی فایل py) رو به یک فایل اجرایی (یعنی exe) تبدیل کنیم، میتونیم روی هر سیستمی اون رو اجرا کنیم.
در این خواندنی با استفاده از برنامه PyInstaller این کار را انجام میدیم.
در این خواندنی از پایتون نسخه 3.5 استفاده شده. تبدیل برای برنامههایی که از ماژول turtle استفاده کردهاند هم موفق انجام شده. لیست کامل ماژولهایی که PyInstaller پشتیبانی میکنه را میتونی اینجا ببینی. برای اطلاعات دقیقتر درباره اینکه PyInstaller چطور کار میکنه هم اینجا رو میتونی نگاه کنی.
مرحله اول: نصب PyInstaller
برنامه Command Prompt رو با یکی از روش های زیر اجرا کن:
کلیدهای winkey+R رو همزمان فشار بده تا کادر Run ظاهر بشه. بعدش دستور cmd رو تایپ و OK رو بزن:
یا در کادر جستجوی نوار وظیفه cmd رو بنویس تا برنامه Command Prompt نشون داده بشه:
حالا باید از اینجا به دایرکتوری Scripts در جایی که پایتون روی کامپیوترت هست بری.
برای ما اینجاست:
D:\Program Files\Python\Python35-32\Scripts
دقت کن که برنامه Python روی سیستم خودت کجا نصب شده، و به همون مسیر برو.
شکل زیر کمک می کنه از دستور cd برای تغییر دایرکتوری استفاده کنی:
حالا درحالیکه به اینترنت متصل هستی، دستور زیر رو بنویس و Enter رو بزن:
1 |
pip install pyinstaller |
شکل زیر نشون میده که PyInstaller نصب شده و پیغام Successfully installed ظاهر شده:
مرحله دوم: تبدیل فایل py به exe
فایل py مورد نظر رو در مسیر زیر که مسیر نصب پایتون هست کپی کن:
C:\Program Files\Python\Python35-32\Scripts
حالا دوباره برگرد به cmd و به مسیری که فایل py رو کپی کردی برو.
دستور زیر رو بنویس و Enter رو بزن تا اجرا بشه:
1 |
pyinstaller --onefile filename.py --onefile |
شکل زیر هم دستور بالا رو نشون میده. اسم فایل اینجا LakiGame بوده.
شکل بالا هم نشون میده که پیغام completed successfully ظاهر شده.
پس فایل exe ایجاد شده.
خوب این فایل کجا هست؟
داخل پوشه Script یک پوشه دیگه بنام dist هست که اگه بازش کنی، دقیقا یک فایل با همون نام فایل پایتونی که کپی کرده بودی ولی پسوند exe دیده میشه.
مثل مسیری که اینجا دیده میشه:
D:\Program Files\Python\Python35-32\Scripts\dist
حالا میتونی از برنامههایی که نوشتی فایل اجرایی (exe) درست کنی و اونها رو برای دوستات بفرستی.
کد برنامه هم در فایل exe دیگه قابل دیدن نیست. حتی با پایتون!
برای باخبرشدن از محتوا و رویدادهای جدید، پایلی را در تلگرام و اینستاگرام دنبال کن.
بیشتر بخوانید
نظرات
mehrshad
اگر در اسکریپت از پکیج هایی مثل python-telegram-bot با pygame پکیج هم داخل فایل .exe قرار می گیره؟!
Admin
همه ماژولها که نه.
آدرس لیست ماژولهایی که پشتیبانی میشه به ابتدای متن خواندنی اضافه شد.
علی
ی ربات تلگرام میخواستم تبدیل کنم با این ارور مواجه شدم
IndexError: tuple index out of range
کلا اینجور که ما فهمیدیم واسه پایتون ورژن سه چیزی نیست برای تبدیل به exe که کار کنه !
Admin
ماژول تلگرام به نظر تمیاد پشتیبانی بشه.
آدرس لیست ماژولهایی که پشتیبانی میشه به ابتدای متن خواندنی اضافه شد.
8546
ادمین ویندوزتو آپدیت کن :)))))))))))))
myregm
سلام. من تا اونجایی که دستور pyinstaller –onefile filename.py –onefile رو وارد میکنیم میرم. البته با اسم فایل خودم. ولی آخرش این پیغام رو میده:
File “c:\users\behnam\appdata\local\programs\python\python36-32\lib\site-packages\PyInstaller\utils\win32\winresource.py”, line 204, in UpdateResources
win32api.EndUpdateResource(hdst, 0)
pywintypes.error: (64, ‘EndUpdateResource’, ‘The specified network name is no longer available.’)
کدی که نوشتم هم اینه:
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()
میتونید راهنماییم کنید؟
Admin
اول یک برنامه ساده را امتحان کنید. مثلا با یک خط کد print
آیا برای این برنامه ساده، تبدیل انجام میشه؟
222222222222222222
رو هر سیستمی exe کار میکنه(32/64 – ؟)
نگین رادمنش
بله exe ای که بعد از ایجاد درست اجرا شده روی هر سیستمی درست اجرا میشود.
سید احمد
سلام
من از کتابخانه سلنیوم استفاده کردم و webdriver وبعد از ساختن فایل اجرایی
و انتقال آن به یه کامپیوتر دیگه فایل exe کار نمی کنه
ایا باید فایل های اضافی مثل درایور رو هم کپی کنم به سیستم جدید؟
ممنون
mostafa
سلام وقتی اجرا می کنم cmd باز می شه و سریع بسته می شه ،صفحه tkinter هم باز نمی شه
نگین رادمنش
سلام ، برای tkinter بهتر است از Cx_Freeze استفاده کنید.
mahdi1234
من یک برنامه رو با ماژول های گوگل ترنس و تیکینتر نوشتم و با pyinstaller خروجی گرفتم و حالا روی یه سیستم دیگه که پایتون نصب نیست تستش کردم کار نکرد چرا؟ چکار کنم که دیگه ارور نده؟ لطفا جواب بدید خیلی مهمه
محمد
سلام.من وقتی تبدیل میکنم فابل پایتونم رو به exe خروجی موفقیت رونشن میده.اما وقتی میخوام بازش کنم با این پیغام مواجه میشم.
name همون اسم نرم افزارم هست
چه کار کنم؟
filed to execute scripte name
اگ ممکنه جوابش رو به ایمیلم ارسال کنید.تشکرعزیزان
mar9680a@gmail.com