رفتن به مطلب
انجمن تیم امنیتی گارد ایران
Mr.Python

آموزش تبدیل فایل های پایتون به فایل اجرایی

پست های پیشنهاد شده

سلام

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

در این آموزش دو روشی که تا الان وجود داره رو بیان میکنیم :

۱. استفاده از کتابخانه pyinstaller

۲. استفاده از ماژول py2exe

** در این اموزش ما تنها از ارگومان های لازم برای اینکار استفاده میکنیم و ارگومان دیگری رو توضیح نمیدیم اما اگر ارگومان و اپشنی در این ماژول و کتابخانه وجود داشت که خواستید در موردش بدونید حتما بپرسید.

**برای لینوکس یا مک باید حتما از روش اول استفاده بشه

روش اول :

با دستور زیر در پوسته cmd یا ترمینال خود کتابخانه مورد نظر رو نصب کنید : ( دقت داشته باشید که اسکریپت pip در مسیر دایرکتوری پایتونتون به طور مثال C:\Python27 وجود داشته باشه اگر نبود اسکریپت پیوست شده دانلود کنید و در مسیر نصب پایتون در ویندوز قرار بدین این بسته به طور پیشفرض در پایتون های نسخه جدید وجود داره همینطور در لینوکس و مک در مورد نصب این اسکریپت در همین حد اکتفا میکنیم و از مسیر اموزش خارج نمیشیم )

pip install pyinstaller

pip install --upgrade pyinstaller ( دستور اپگرید و بروز رسانی کتابخانه pyinstaller )

** شما از اول باید مسیر path پایتون رو در متغیر های سیستم داده باشیدenumeration variable

خب بریم سر اصل اموزش !!! :

در پوسته cmd ویندوز یا ترمینال با دستور cd به پوشه یا محیطی که برنامه پایتونتون در اون قرار داره وارد بشید : مثلا cd Desktop

خب حالا در همون پوسته cmd یا ترمینال دستور زیر رو برای ایجاد فایل اجرایی وارد کنید و دقت کنید اینکار اول نوع و ورژن سیستم عامل شما رو میشناسه و به وسیله اینکه شما ویندوز یا لینوکس یا مک دارید فایل اجرایی رو مطابق اون تولید میکنه مثلا exe یا run یا ...::

pyinstaller --onefile name.py

در ویندوز :

pyinstaller.exe --onefile name.py

فایل موجود در دایرکتوری dist قرار داره .

اگر برنامه شما گرافیکی نیست میتونید ارگومان windowed-- رو قبل از name.py قرار بدید.

برای اضافه کردن ایکون به برنامتون هم ارگومان icon=myicon.ico-- هم اضافه کنید و دقت کنید تصویر خودتون رو از قبل به فرمت ICO همون ایکون ، تبدیل کرده باشید .

برا اینکه اموزش از مسیر خارج نشه ! اگر دوست دارید مشخصاتی مثل ورژن هم به برنامه بدید در pm بپرسید. شلوغ میشه

خب روش دوم :

به سایت زیر مراجعه کنید و بسته به معماری سیستم عاملتون و نسخه python این ماژول رو نصب کنید : نصب راحته و ماژول هم اسکریپتی نیست فایل exe هست و مثل بقیه برنامه ها نصب میشه :

اخرین ورژن رو دانلود کنید :

https://sourceforge.net/projects/py2exe/files/py2exe/

اگر نسخه پایتون ۳ به بالا هست دستور زیر رو در پوسته cmd یا ترمینال وارد کنید:

pip install py2exe

خب فایل setup.py که پیوست شده رو دانلود کنید و با ویرایشگر باز کنید مثل idle قسمت name.py رو به نام فایل پایتون خودتون تغییر بدید مثلا mojtaba.py

خب حالا اسکریپت setup.py رو در کنار برنامتون قرار بدید و با دستور cd به محل فایل پایتونتون برید و دستور زیر رو در ترمینال یا پوسته cmd وارد کنید:

python setup.py py2exe

خب اسکریپت setup.py که پیوست میکنم فایلتون رو فقط به یک فایل اجرایی تبدیل میکنه و هیچ فایل اضافی مبنی بر ماژول هاتون و DLL ها تولید نمیشه و همش در همان فایل اجرایی فشرده میشه.

اگر تمایل دارید که اینجوری نشه در pm بپرسید. ولی بهتره همه در یک فایل اجرایی فشرده بشه که فایل اضافی نداشته باشین.

برنامه نویسان پایتون توجه کنند در اسکریپت setup خودشون در صورت تمایل مسیر دایرکتوری خروجی فایل اجرایی رو با ماژول os وارد کنند یا میتونند تغییراتی در sys و دریافت ارگومان ایجاد کنند (الزامی نیست)

Files.rar

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام خسته نباشید من همه چیز رو به درستی وارد میکنم ولی با این ارور مواجه میشم تو روش دو روش یک کار میکنه 

Traceback (most recent call last):
  File "setup.py", line 10, in <module>
    zipfile = None,
  File "C:\Users\AHEN\AppData\Local\Programs\Python\Python37-32\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\Users\AHEN\AppData\Local\Programs\Python\Python37-32\lib\distutils\dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "C:\Users\AHEN\AppData\Local\Programs\Python\Python37-32\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "C:\Users\AHEN\AppData\Local\Programs\Python\Python37-32\lib\site-packages\py2exe\distutils_buildexe.py", line 188, in run
    self._run()
  File "C:\Users\AHEN\AppData\Local\Programs\Python\Python37-32\lib\site-packages\py2exe\distutils_buildexe.py", line 267, in _run
    builder.analyze()
  File "C:\Users\AHEN\AppData\Local\Programs\Python\Python37-32\lib\site-packages\py2exe\runtime.py", line 160, in analyze
    self.mf.import_hook(modname)
  File "C:\Users\AHEN\AppData\Local\Programs\Python\Python37-32\lib\site-packages\py2exe\mf3.py", line 120, in import_hook
    module = self._gcd_import(name)
  File "C:\Users\AHEN\AppData\Local\Programs\Python\Python37-32\lib\site-packages\py2exe\mf3.py", line 274, in _gcd_import
    return self._find_and_load(name)
  File "C:\Users\AHEN\AppData\Local\Programs\Python\Python37-32\lib\site-packages\py2exe\mf3.py", line 357, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Users\AHEN\AppData\Local\Programs\Python\Python37-32\lib\site-packages\py2exe\mf3.py", line 401, in _scan_code
    self._scan_code(c, mod)
  File "C:\Users\AHEN\AppData\Local\Programs\Python\Python37-32\lib\site-packages\py2exe\mf3.py", line 388, in _scan_code
    for what, args in self._scan_opcodes(code):
  File "C:\Users\AHEN\AppData\Local\Programs\Python\Python37-32\lib\site-packages\py2exe\mf3.py", line 417, in _scan_opcodes
    yield "store", (names[oparg],)
IndexError: tuple index out of range

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

در حال بارگذاری

×
×
  • جدید...