pythonexe

تبدیل برنامه پایتون به فایل اجرایی exe

شاید تا حالا این سؤال براتون پیش اومده باشه که: چطور برنامه‌های پایتون رو روی سیستمی که روش پایتون نصب نیست اجرا کنیم؟

اگر برنامه پایتون (یعنی فایل py) رو به یک فایل اجرایی (یعنی exe) تبدیل کنیم، می‌تونیم روی هر سیستمی اون رو اجرا کنیم.

در این خواندنی با استفاده از برنامه PyInstaller این کار را انجام میدیم.

 در این خواندنی از پایتون نسخه 3.5 استفاده شده. تبدیل برای برنامه‌هایی که از ماژول turtle استفاده کرده‌اند هم موفق انجام شده. لیست کامل ماژول‌هایی که PyInstaller پشتیبانی میکنه را میتونی اینجا ببینی. برای اطلاعات دقیق‌تر درباره اینکه PyInstaller چطور کار میکنه هم اینجا رو میتونی نگاه کنی.

مرحله اول: نصب PyInstaller

برنامه Command Prompt رو با یکی از روش های زیر اجرا کن:

کلیدهای winkey+R رو همزمان فشار بده تا کادر Run ظاهر بشه. بعدش دستور cmd رو تایپ و OK رو بزن:

1PyInstaller

یا در کادر جستجوی نوار وظیفه cmd رو بنویس تا برنامه Command Prompt نشون داده بشه:

PyInstaller

حالا باید از اینجا به دایرکتوری‌ Scripts در جایی که پایتون روی کامپیوترت هست بری.

برای ما اینجاست:

D:\Program Files\Python\Python35-32\Scripts

دقت کن که برنامه Python روی سیستم خودت کجا نصب شده، و به همون مسیر برو.

شکل زیر کمک می کنه از دستور cd برای تغییر دایرکتوری استفاده کنی:

PyInstaller

حالا درحالیکه به اینترنت متصل هستی، دستور زیر رو بنویس و Enter رو بزن:

شکل زیر نشون میده که PyInstaller نصب شده و پیغام Successfully installed ظاهر شده:pyins

مرحله دوم: تبدیل فایل py به exe

فایل py مورد نظر رو در مسیر زیر که مسیر نصب پایتون هست کپی کن:

C:\Program Files\Python\Python35-32\Scripts

حالا دوباره برگرد به cmd و به مسیری که فایل py رو کپی کردی برو.

دستور زیر رو بنویس و Enter رو بزن تا اجرا بشه:

شکل زیر هم دستور بالا رو نشون میده. اسم فایل اینجا LakiGame بوده.

pyinstaller

pyinstaller

شکل بالا هم نشون میده که پیغام completed successfully ظاهر شده.

پس فایل exe ایجاد شده.

خوب این فایل کجا هست؟

داخل پوشه Script یک پوشه دیگه بنام dist هست که اگه بازش کنی، دقیقا یک فایل با همون نام فایل پایتونی که کپی کرده بودی ولی پسوند exe دیده میشه.

مثل مسیری که اینجا دیده میشه:

D:\Program Files\Python\Python35-32\Scripts\dist

pyinstaller

حالا می‌تونی از برنامه‌هایی که نوشتی فایل اجرایی (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