ابحث في المدونة

الاثنين، 23 مارس 2020

كيفية تحويل أكواد بايثون إلى ملف exe قابل للتنفيذ

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته.
طابت أوقاتكم بالخير والمسرة وأهلًأ بكم في هذه المشاركة.
سنتعرف اليوم بمشيءة الله تعالى على طريقة تحويل الكود المكتوب بلغة البايثون إلى ملف exe قابل للتشغيل
سنستعين في شرحنا هذا بمكتبة تسمى pyinstaller
ولكي لا أطيل عليكم فلندخل في صلب الموضوع.

أولًا: تثبيت مكتبة pyinstaller

لتعلم عزيزي القارئ أن مكتبة pyinstaller لا تأتي افتراضيًا ضمن الحزم المدمجة مع بيئة البايثون. مع ذلك ؛ يمكنك تثبيت المكتبة بخطوات بسيطة جدًا لا تستدعي سوى التركيز في الخطوات التي سأذكرها أدناه:
1. افتح موجه الأوامر cmd وذلك بكتابة كلمة cmd في شريط البحث الموجود على قائمة إبدأ

2. اكتب الأمر الذي يخص تنزيل المكتبة باستخدام أداة pip المضمنة مع البايثون , والأمر هو كالتالي:
pip install pyinstaller



2. بعد كتابتك للأمر السابق وضغطك على زر الإدخال enter انتظر ريثما يقوم pip بتحضير الملفات من الإنترنت وتثبيتها على جهازك , وكل ذلك سيجري تلقائيًا دون أدنى تدخل منك.
وبعد انتهاء pip من تثبيت المطلوب سيعلمك بنجاح العملية.



ثانيًا: تحويل الكود إلى exe


الآن أصبح لديك المكون المسؤول عن تحويل أكواد بايثون والتي هي بصيغة py إلى ملف تنفيذي يعمل على نظام الويندوز , حيث أن عملية تثبيت مكتبة pyinstaller تجرى مرة واحدة فقط.
بقي الآن أن تكتب برنامجك في ملف .py وتحفظه في أي مكان تشاء
وبعد انتهائك من كتابة برنامجك ستتبع الخطوات التالية لجعله قابل للتشغيل على كافة الأجهزة العاملة بنظام ويندوز
الخطوات:
1. انسخ مسار المجلد الحاوي على الملف  المكتوب بلغة البايثون مع اسم الملف وامتداده
فعلى سبيل المثال: إن كان برنامجي قد وضعته في مجلد باسم project داخل مجلد المستندات وكان اسم الملف هو test.py فسيكون المسار بالشكل التالي
C:\\users\suleiman\documents\project\test.py

2. بعد نسخ المسار ؛ افتح موجه الأوامر cmd بالطريقة المذكورة أعلاه
3. هنا إن كان برنامجك يحتوي على واجهة رسومية فستكتب الأمر التالي متبوعًا بمسار ملف البايثون
pyinstaller -w
أي في مثالنا السابق سيكون الكود بهذا الشكل:
pyinstaller -w C:\\users\suleiman\documents\project\test.py
وتضغط على مفتاح الدخول enter

أما إن كان برنامجك مبنيًأ على موجه الأوامر فسيكون الأمر هكذا
pyinstaller C:\\users\suleiman\documents\project\test.py
أي أننا لا نكتب -w بين عبارة pyinstaller ومسار الملف.
4. في كلا الحالتين ستقوم مكتبة py installer بتحويل كودنا إلى ملف exe قابل للتنفيذ , وسيتم وضع الناتج في نفس مجلد المشروع بداخل مجلد فرعي آخر باسم dist يحتوي على جميع ملفات برنامجنا بالمكتبات المستدعاة وكل شيء يخصه , بالإضافة إلى الملف التنفيذي الخاص به.
وفي هذه الحالة نستطيع تشغيل برنامجنا في أي جهاز كمبيوتر وإن لم يحتوي على بيئة بايثون.


ختامًأ: أسأل الله أن يوفقكم ويسدد خطاكم ويكتب لكم ما فيه الخير والصلاح , وأرجو أن أكون قد وفقت في تقديم المفيد
والسلام عليكم ورحمة الله وبركاته.

هناك 7 تعليقات:

  1. السلام عليكم ورحمة الله وبركاته.
    توجد أيضا طريقة أخرى وهي أسهل من هذه على ما أعتقد، وهي كالتالي:
    نقوم بتثبيت مكتبة اسمها auto-py-to-exe
    بنفس الطريقة التي تم ذكرها في الشرح
    ثم بعد ذلك نفتح موجه الأوامر ونكتب:
    auto-py-to-exe
    سيفتح لنا صفحة ويب نضغط حرف b سنجد زر تصفح مثل مواقع الرفع ومنه نختار الملف المراد تحويله ثم نتحرك تاب ونضغط إنتر على جميع الأزرار الأربعة بعدها نضغط الزر الأخير convert py to exe
    ومبروك علينا البرنامج الموقع يسمح بإضافات أخرى لا علم لي بها حاليا.
    ونجد الملف الناتج في مجلد باسم output داخل مجلد المستخدم.
    وجزاكم الله خيرا على الشرح الوافي.

    ردحذف
    الردود
    1. وعليكم السلام ورحمة الله وبركاته.
      بالفعل هذه الطريقة صحيحة, وهي تعتمد على المكتبة المشروحة في هذا المقال.
      لكنها تقدم تجربة ذات واجهة رسومية في عملية التحويل.

      حذف
  2. لكنها تقدم تجربة ذات واجهة رسومية في عملية التحويل.
    ما المقصود بتجربة ذات واجهة رسومية؟
    أليست أفضل في التحويل؟
    لأنها تجعل البرنامج في ملف واحد وليس مجموعة ملفات

    ردحذف
    الردود
    1. أهلًأ وسهلًا.
      المكتبتين تيقومان بالأمر نفسه, بل إن مكتبة autopy2exe تعتمد في عملها على المكتبة pyinstaller, فقط هي تعطينا واجهة تفاعلية للتحويل بدلًأ من الكود.
      بالنسبة لمسألة تجميع البرنامج في ملف exe واحد, فيمكن أن ننفذه أيضًا بالمكتبة المشروحة في المقال بكتابة:
      pyinstaller -w --onefile script.py
      باعتبار أن script.py هو اسم ملف البايثون الرئيسي لبرنامجنا.
      لكن هل هذا هو الخيار المفضل؟
      يعتمد ذلك على برنامجنا, فلو كان المشروع كبيرًا وفي بعض الأحيان نحتاج إلى تحديث جزء معين منه فإن الطريقة الأولى هي الأصح.
      وقد قرأت في الموقع الرسمي لمكتبة pyinstaller أنهم لا يحبذون استخدام طريقة الجمع في ملف واحد بحك أنها تسبب بطء في تشغيل البرنامج, والعهدة بطبيعة الحال عليهم, فأنا في الحقيقة لم ألحظ ذاك الفرق الكبير ربما لجهل مني أو أنني لم أجرب الأمر في برنامج ضخم.

      بارك الله فيكم.

      حذف
  3. faugeglomwaLittle Rock Travis Booth click here
    sighsotofor

    ردحذف
  4. سلام عليكم
    تلقيت مشكلة تحويل ملف py الىexe في مكتبة libsosa
    اطلب المساعدة إخوتي الكرام

    ردحذف
  5. السلام عليكم اخوتي في الله الان انا لدي مشكله انا اريد تحويل الكود الخاص بي الى برنامج تنفيذي وبالفعل نجحت وحولته لكن البرنامج يعمل فقط على ويندوز 10 (الموجوده على جهازي وتقريبا على اي ويندوز 10 اخر) لكن لا يعمل ابدا على ويندوز 7 مهما نقلت ملفات dll ومهما استخدمت من برامج تحويل مختلفه مثل Pyinstaller و Py2exe و Cx_freeze البرنامج التنفيذي لا يعمل ابدا على ويندوز 7 (مع العلم استخدم في الكود الخاص بي مكتبات مثل tkinter و date and time .. الخ) اكون شاكر جدا للمساعده

    ردحذف

قل شيئًا