اذهب إلى المحتوى

قبل شرح كيفية تهيئة بايثون، نود إعلامك أن هذا سيكون أول مقال من سلسلة مقالات أتمتة المهام عبر بايثون. ستشرح هذه السلسلة أساسيات البرمجة بلغة بايثون، والمهام المختلفة التي يمكن لحاسوبك أتمتتها، كما سنشاركك مشاريع عملية مع نهاية كل جزئية منه، والتي تستطيع استعمالها ودراستها ومشاركتنا تطبيقاتك لها في التعليقات.

ما هي بايثون؟

بايثون هي لغة برمجة، ولغة البرمجة هي مجموعة قواعد لكتابة الشيفرة يجب الالتزام بها ليفهمها مترجم اللغة، ومترجم بايثون Python interpreter هو برمجية تقرأ الشيفرات المصدرية بلغة بايثون وتطبق التعليمات البرمجية فيها.

يمكنك أن تنزل مفسر لغة بايثون مجانًا من موقع اللغة الرسمي، الذي فيه إصدارات لأنظمة تشغيل ويندوز وماك ولينكس. إذا كنتَ تتساءل من أين أتى اسم بايثون، فهو من مجموعة كوميدية بريطانية اسمها Monty Python، ولا علاقة للثعابين والأفاعي باسمها.

تنزيل وتثبيت بايثون

يمكنك تنزيل بايثون لنظام تشغيل ويندوز أو ماك أو لينكس مجانًا من رابط موقع اللغة، وستعمل معك جميع التطبيقات المشروحة في هذه السلسلة معك.

اقتباس

تحذير: احرص على تنزيل النسخة الثالثة من بايثون (مثل 3.10.4) فالبرامج المشروحة في هذه السلسلة مكتوبة لتعمل على بايثون 3 ولن تعمل كما يجب على بايثون 2.

ستجد في موقع بايثون نسختين إحداهما 64-بت والأخرى 32-بت لكل نظام تشغيل، لذا عليك اختيار الملف الصحيح لتنزله وتثبته. إذا اشتريت حاسوبك بعد عام 2007 فمن المرجح أنك تستعمل نظام 64-بت، وإلا فعليك استخدام نسخة 32-بت.

إذا كنت تستعمل نظام ويندوز فنزِّل مثبت بايثون (الذي ينتهي باللاحقة ‎.exe) وشغِّله، ثم اتبع ما يرشدك إليه المثبِّت على الشاشة. أما على نظام macOS فنزِّل ملف ‎.pkg ثم شغله واتبع الإرشادات الموجودة على الشاشة.

أما إذا كنت تستعمل توزيعة أوبنتو (أو ما يشبهها من التوزيعات المبنية على دبيان) فيمكنك تثبيت بايثون من سطر الأوامر بتنفيذ الأمر الآتي:

sudo apt install python3 python3-pip idle3

تنزيل وتثبيت محرر Mu

صحيحٌ أن مفسِّر بايثون هو البرنامج الذي يشغل شيفرات بايثون التي تكتبها، لكن برمجية Mu editor هي مكان إدخالك للشيفرات، بنفس الطريقة التي تكتب فيها بمعالج النصوص المفضل لديك. يمكنك تنزيل محرر Mu من موقعه.

نزِّل المثبِّت الخاص بنظامك إن كنت تستعمل ويندوز أو ماك، ثم ابدأ عملية التثبيت بفتح المثبت، أما على لينكس فستحتاج إلى تثبيت محرر Mu كحزمة بايثون، وفي تلك الحالة اتبع الإرشادات الموجودة في الموقع.

تشغيل محرر Mu

بعد انتهاء تثبيت Mu، يمكنك تشغيله:

  • في نظام ويندوز بالضغط على قائمة ابدأ ثم البحث عن Mu.
  • في نظام MacOS بفتح Finder ثم Applications ثم الضغط على أيقونة mu-editor.
  • في لينكس عليك تشغيل الطرفية Terminal ثم كتابة mu-editor.

وحين تشغيلك لمحرر Mu لأول مرة فستظهر لك نافذة تخيّرك بين عدة خيارات وعليك اختيار Python 3، يمكنك في أي وقت تغيير النمط بالضغط على زر Mode في أعلى نافذة المحرر.

تشغيل IDLE

نستعمل في هذه السلسلة Mu كمحرر وصدفة تفاعلية interactive shell، لكنك تستطيع استخدام أي محرر تشاء لكتابة شيفرات بايثون، وتثبت بيئة التطوير والتعليم المدمجة Integrated Development and Learning Environment ‏(اختصارًا IDLE) مع بايثون تلقائيًا، ويمكنها أن تعمل كمحرر ثانوي لك إن لم يعمل يثبت عندك محرر Mu. لنشغل IDLE:

  • في نظام ويندوز بالضغط على قائمة ابدأ ثم البحث عن IDLE.
  • في نظام macOS بفتح Finder ثم Applications ثم الضغط على أيقونة Python.
  • في لينكس عليك تشغيل الطرفية Terminal ثم كتابة idle3.

الصَدَفة التفاعلية Interactive Shell

عندما تشغل Mu فستظهر أمامك نافذة تحرير الملف، ويمكنك فتح الصَدَفة التفاعلية بالضغط على زر REPL.

الصَدَفة Shell هي برنامج يسمح لك بإعطاء تعليمات للحاسوب، كما تفعل حينما تفتح الطرفية Terminal في لينكس أو ماك، أو موجه الأوامر في ويندوز. تسمح لك الصدفة التفاعلية في بايثون بإدخال التعليمات لينفذها مفسِّر بايثون مباشرةً.

تجد الصدفة التفاعلية في محرر Mu في إطار في الجزء السفلي من النافذة فيها النص الآتي:

Jupyter QtConsole 4.7.7
Python 3.6.9 (default, Mar 15 2022, 13:55:28) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.16.3 -- An enhanced Interactive Python. Type '?' for help.

In [1]: 

إذا كنت تستعمل IDLE، فالصدفة التفاعلية هي أول ما ستراه أمامك، ويفترض أن تكون فارغة باستثناء نص يبدو كما يلي:

Python 3.6.9 (default, Mar 15 2022, 13:55:28) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license()" for more information.
>>> 

الأسطر التي تبدأ بالعبارة In [1]: أو ‎<<< تسمى محثًا prompt (أي أنها عبارة «تحثّ» المستخدم على كتابة أمر وراءها). أمثلة هذه السلسلة ستستخدم <<< للإشارة إلى محث الصدفة التفاعلية لأنه أكثر شيوعًا. إذا شغلت مفسر بايثون من سطر الأوامر فستجد أمامك المحث <<< أيضًا. يستخدم محرر Jupyter Notebook الشهير المحث In [1]:‎ وشاع بسببه.

لنجرب مثالًا بسيطًا، أدخل السطر الآتي في الصدفة التفاعلية بعد المحث:

>>> print('Hello, world!')

بعد كتابة السطر السابق فاضغط على زر Enter، ويجب أن يظهر ما يلي في الصدفة:

>>> print('Hello, world!')
Hello, world!

لقد أعطيت الحاسوب أمرًا ونفذه لك. مبارك!

تثبيت الوحدات الخارجية في بايثون

كتب العديد من المطورين وحداتهم الخاصة، مما أدى إلى توسيع قدرات لغة بايثون Python إلى ما هو أبعد مما توفره المكتبة المعيارية للوحدات المُدمَجة مع بايثون، والطريقة الأساسية لتثبيت هذه الوحدات الخارجية هي استخدام الأداة Pip في بايثون، حيث تنزِّل هذه الأداة وحدات بايثون وتثبّتها بطريقة آمنة على حاسوبك من موقع الويب الخاص بمؤسسة برمجيات بايثون، ويُعَد PyPI أو Python Package Index متجر التطبيقات المجاني لوحدات بايثون.

ملاحظة: يمكنك تثبيت جميع الوحدات المطلوبة مع الإصدارات المستخدمة في هذه السلسلة من المقالات من خلال تثبيت الوحدة automateboringstuff باستخدام الأداة Pip، لذا شغّل الأمر الآتي من موجّه الأوامر أو نافذة الطرفية Terminal.

pip install --user automateboringstuff 

الأداة Pip

تُثبَّت الأداة Pip تلقائيًا مع الإصدار 3.4 من بايثون والإصدارات الأحدث على نظامي تشغيل ويندوز Windows وماك macOS، ولكن يجب أن تثبّتها تثبيتًا منفصلًا على نظام لينكس Linux. يمكنك معرفة ما إذا كانت الأداة Pip مُثبَّتة مسبقًا على نظام لينكس من خلال تشغيل الأمر which pip3 في نافذة الطرفية Terminal، حيث إذا كانت مثبَّتة، فسترى موقع الأداة pip3 معروضًا، وإلّا فلن يُعرض أيّ شيء. يمكنك تثبيت الأداة pip3 على نظام أوبنتو Ubuntu أو نظام دبيان Debian Linux من خلال فتح نافذة طرفية جديدة وإدخال الأمر sudo apt install python3-pip، ويمكنك تثبيت الأداة pip3 على نظام فيدورا لينكس Fedora Linux من خلال إدخال الأمر sudo dnf install python3-pip في نافذة الطرفية، ويجب أن تدخِل كلمة مرور المدير الخاصة بحاسوبك.

تُشغَّل الأداة pip من نافذة الطرفية (وتُسمَّى أيضًا سطر الأوامر)، وليس من صدفة بايثون التفاعلية Interactive Shell. شغّل برنامج "موجّه الأوامر Command Prompt" من قائمة "ابدأ Start" في نظام تشغيل ويندوز، وشغّل الطرفية من أيقونة سبوت لايت Spotlight على نظام ماك macOS، وشغّل الطرفية من أيقونة Ubuntu Dash أو اضغط على الاختصار Ctrl-Alt-T في نظام أوبنتو لينكس Ubuntu Linux.

إن لم يكن مجلد pip موجودًا في متغير البيئة PATH، فيجب تغيير المجلد في نافذة الطرفية باستخدام الأمر cd قبل تشغيل الأداة pip. إذا أردتَ معرفة اسم المستخدم الخاص بك، فشغّل الأمر echo %USERNAME%‎ على نظام ويندوز أو الأمر whoami على نظامي ماك macOS ولينكس، ثم شغّل الأمر cd pip folder، حيث يكون مجلد pip على نظام ويندوز في الآتي:

 C:\Users\<USERNAME>\AppData\Local\Programs\Python\Python39\Scripts

ويوجد هذا المجلد في نظام ماك macOS على:

 /Library/Frameworks/Python.framework/Versions/3.9/bin/ 

كما يوجد هذا المجلد في نظام لينكس على:

/home/<USERNAME>/.local/bin/

، وبذلك ستكون في المجلد الصحيح لتشغيل الأداة pip.

تثبيت الوحدات الخارجية

يُسمَّى الملف القابل للتنفيذ للأداة pip بالاسم pip على نظام ويندوز ويسمّى pip3 على نظامي ماك macOS ولينكس. مرّر الأمر install متبوعًا باسم الوحدة التي تريد تثبيتها من سطر الأوامر، فمثلًا يمكنك إدخال الأمر pip install --user MODULE في نظام ويندوز، حيث MODULE هو اسم الوحدة.

قد تكون التغييرات المستقبلية على هذه الوحدات الخارجية غير متوافقة مع الإصدارات السابقة، لذا نوصي بتثبيت الإصدارات المحدَّدة المستخدمة في هذه السلسلة من المقالات كما سنوضّح لاحقًا، حيث يمكنك إضافة الخيار ‎-U MODULE==VERSION إلى نهاية اسم الوحدة لتثبيت إصدار محدّد، ولاحظ وجود إشارتي مساواة في خيار سطر الأوامر، فمثلًا يثبّت الأمر الآتي الإصدار 1.5.0 من الوحدة send2trash:

 pip install --user -U send2trash==1.5.0 

يمكنك تثبيت جميع الوحدات التي تغطيها هذه السلسلة من المقالات من خلال تنزيل ملفات المتطلبات "requirements" لنظام تشغيلك من موقع nostarch وتشغيل أحد الأوامر التالية:

على نظام ويندوز:

pip install --user r automate-win-requirements.txt ––user

على نظام ماك macOS:

pip3 install --user r automate-mac-requirements.txt --user

على نظام لينكس:

pip3 install --user r automate-linux-requirements.txt --user

تحتوي القائمة التالية على الوحدات الخارجية المستخدمة في هذه السلسلة من المقالات مع إصداراتها المختلفة، حيث يمكنك إدخال هذه الأوامر إدخالًا منفصلًا إذا أردتَ تثبيت عددٍ محدّد من هذه الوحدات على حاسوبك:

  • pip install --user send2trash==1.5.0
  • pip install --user requests==2.21.0
  • pip install --user beautifulsoup4==4.7.1
  • pip install --user selenium==3.141.0
  • pip install --user openpyxl==2.6.1
  • pip install --user PyPDF2==1.26.0
  • pip install --user python-docx==0.8.10 ‫(تثبيت‫ python-docx وليس docx)
  • pip install --user imapclient==2.1.0
  • pip install --user pyzmail36==1.0.4
  • pip install --user twilio
  • pip install --user ezgmail
  • pip install --user ezsheets
  • pip install --user pillow==9.2.0
  • pip install --user pyobjc-framework-Quartz==5.2 (على نظام ماك فقط)
  • pip install --user pyobjc-core==5.2 (على نظام ماك فقط)
  • pip install --user pyobjc==5.2 (على نظام ماك فقط)
  • pip install --user python3-xlib==0.15 (على نظام لينكس فقط)
  • pip install --user pyautogui

ملاحظة: يمكن أن يستغرق تثبيت الوحدة pyobjc في نظام ماك 20 دقيقة أو أكثر، لذا لا تنزعج إذا استغرق الأمر بعض الوقت، ويجب عليك أيضًا تثبيت الوحدة pyobjc-core أولًا، مما سيؤدي إلى تقليل وقت التثبيت الإجمالي.

يمكنك اختبار نجاح تثبيت الوحدة بعد تثبيتها من خلال تشغيل الأمر import ModuleName في الصدفة التفاعلية، وإذا لم تُعرَض أيّ رسائل خطأ، فسنفترض نجاح تثبيت هذه الوحدة. إذا كانت الوحدة مثبتة مسبقًا، ولكنك ترغب في ترقيتها إلى أحدث إصدار متاح على موقع PyPI، فشغّل الأمر الآتي على نظامي ماك macOS ولينكس:

 pip install --user -U MODULE أو pip3 install --user -U MODULE 

حيث يثبَت الخيار ‎--user الوحدة في مجلد المستخدم الخاص بك، مما يؤدي إلى تجنب أخطاء الأذونات المحتملة التي قد تواجهها عند محاولة التثبيت لجميع المستخدمين.

تُجرِي الإصدارات الأحدث من وحدات Selenium و OpenPyXL تغييرات غير متوافقة مع الإصدارات السابقة المُستخدَمة في هذه السلسلة من المقالات، بينما تتفاعل وحدات Twilio و EZGmail و EZSheets مع الخدمات عبر الإنترنت، ولكن قد يُطلَب منك تثبيت أحدث إصدار من هذه الوحدات باستخدام الأمر:

pip install --user -U

ملاحظة: اقترحنا سابقًا استخدام الأمر sudo إذا واجهتَ أخطاء في الأذونات أثناء تشغيل أمر pip كما يلي: sudo pip install module، ولكنها تُعَد ممارسة سيئة، لأنها تثبّت وحدات مع تثبيت بايثون الذي يستخدمه نظام تشغيلك، إذ قد يشغّل نظام تشغيلك سكربتات بايثون لتنفيذ المهام المتعلقة بالنظام، وإذا ثبّتَ وحدات مع تثبيت بايثون بحيث تتعارض هذه الوحدات مع وحداته الحالية، فقد يؤدي ذلك إلى إنتاج أخطاء يصعب إصلاحها، لذا لا تستخدم الأمر sudo أبدًا عند تثبيت وحدات بايثون.

تثبيت وحدات للمحرّر Mu

يمتلك محرّر Mu بيئة بايثون الخاصة به، وهي منفصلة عن البيئة التي تمتلكها عمليات تثبيت بايثون النموذجية، إذ يمكنك تثبيت الوحدات بحيث تستخدمها في السكربتات التي يشغّلها المحرّر Mu من خلال إظهار لوحة المدير Admin Panel عند النقر على رمز الترس في الزاوية اليمنى السفلية للمحرّر Mu، ثم انقر على تبويب الحزم الخارجية Third Party Packages في النافذة التي ستظهر واتبع الإرشادات الخاصة بتثبيت الوحدات في هذا التبويب. لا تزال القدرة على تثبيت الوحدات في المحرّر Mu ميزة حديثة وقيد التطوير، لذا قد تتغير هذه التعليمات.

إن لم تتمكّن من تثبيت الوحدات باستخدام لوحة المدير، فيمكنك أيضًا فتح نافذة الطرفية وتشغيل الأداة pip الخاصة بالمحرّر Mu. يجب أن تستخدم خيار سطر الأوامر ‎--target الخاص بالأداة pip لتحديد مجلد الوحدة الخاص بالمحرّر Mu، وهذا المجلد على نظام ويندوز هو:

 C:\Users\<USERNAME>\AppData\Local\Mu\pkgs

وعلى نظام ماك macOS:

‎/Applications/mu-editor.app/Contents/Resources/app_packages

ولكنك لا تحتاج في نظام لينكس إلى إدخال الوسيط ‎--target ، لذا شغّل الأمر pip3 فقط.

شغّل الأوامر التالية مثلًا بعد تنزيل ملف المتطلبات لنظام تشغيلك من موقع nostarch:

على نظام ويندوز:

pip install r automate-win-requirements.txt --target "C:\Users\USERNAME\AppData\Local\Mu\pkgs"

على نظام ماك macOS:

pip3 install r automate-mac-requirements.txt --target /Applications/mu-editor.app/Contents/Resources/app_packages

على نظام لينكس:

pip3 install --user r automate-linux-requirements.txt

إذا أردتَ تثبيت بعض الوحدات فقط، فيمكنك تشغيل الأمر pip (أو pip3) العادي وإضافة الوسيط ‎--target.

تشغيل البرامج في بايثون

إذا كان برنامجك مفتوحًا في المحرّر Mu، فيُعَد تشغيله أمرًا بسيطًا من خلال الضغط على مفتاح F5 أو النقر على زر التشغيل Run الموجود أعلى النافذة، وهي طريقة سهلة لتشغيل البرامج أثناء كتابتها، ولكن يمكن أن يكون فتح المحرّر Mu لتشغيل برامجك النهائية عبئًا عليك، لذا توجد طرق أكثر ملاءمة سنوضّحها في هذا المقال لتنفيذ سكربتات بايثون اعتمادًا على نظام التشغيل الذي تستخدمه.

تشغيل البرامج من نافذة الطرفية Terminal

إذا فتحتَ نافذة طرفية مثل موجّه الأوامر على نظام ويندوز Windows أو الطرفية Terminal على نظامي ماك macOS ولينكس Linux، فسترى نافذةً فارغة لإدخال أوامر نصية فيها. يمكنك تشغيل برامجك من الطرفية، ولكن إن لم تكن معتادًا على ذلك، فسيكون استخدام حاسوبك عبر هذه الطرفية (التي تُسمَّى سطر الأوامر أيضًا) أمرًا صعبًا، إذ لن تقدّم الطرفية أيّ تلميحات حول ما يُفترض أن تفعله على عكس واجهة المستخدم الرسومية.

يمكنك فتح نافذة طرفية على نظام ويندوز من خلال النقر على زر "ابدأ أو Start"، ثم أدخل إلى موجّه الأوامر، واضغط على مفتاح ENTER. انقر على أيقونة Spotlight في الجزء العلوي الأيمن في نظام ماك macOS، واكتب Terminal، ثم اضغط على مفتاح ENTER. يمكنك في نظام أوبنتو لينكس Ubuntu Linux الضغط على مفتاح WIN لإظهار أيقونة Dash، ثم اكتب Terminal، واضغط على مفتاح ENTER، وسيفتح اختصار لوحة المفاتيح Ctrl-Alt-T أيضًا نافذة الطرفية على نظام أوبنتو.

تحتوي الصدفة التفاعلية على سطر الأوامر <<<، وتعرض الطرفية أيضًا هذا السطر لإدخال الأوامر. سيكون المسار التالي هو المسار الكامل للمجلد الذي تتواجد فيه حاليًا على نظام ويندوز:

C:\Users\Al>your commands go here

يعرض سطر الأوامر على نظام ماك macOS اسم حاسوبك ونقطتين ومجلد العمل الحالي (مع تمثيل مجلد المنزل home directory بالرمز ~ اختصارًا) واسم المستخدم الخاص بك متبوعًا بإشارة الدولار الأمريكي ($) كما يلي:

Als-MacBook-Pro:~ al$ your commands go here

يشبه سطر الأوامر في نظام أوبنتو لينكس سطرَ الأوامر في نظام ماك macOS باستثناء أنه يبدأ باسم المستخدم والإشارة @ كما يلي:

al@al-VirtualBox:~$ your commands go here

ملاحظة: يمكن تخصيص سطور الأوامر، ولكن لن نوضّح ذلك في هذا المقال.

إذا أدخلتَ أمرًا مثل الأمر python على نظام ويندوز أو الأمر python3 على نظامي ماك macOS ولينكس، فستتحقق الطرفية من وجود برنامج يحمل هذا الاسم في المجلد الذي تتواجد فيه حاليًا، وإذا لم تجده هناك، فستتحقق من المجلدات المُدرَجة في متغير البيئة PATH، حيث يمكن عَدّ متغيرات البيئة بأنها متغيرات على مستوى نظام التشغيل بأكمله، إذ تحتوي على عددٍ من إعدادات النظام. يمكنك رؤية القيمة المُخزَّنة في متغير البيئة PATH من خلال تشغيل الأمر echo %PATH%‎ على نظام ويندوز والأمر echo $PATH على نظامي ماك macOS ولينكس. إليك مثال على نظام ماك macOS:

Als-MacBook-Pro:~ al$ echo $PATH
/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/bin:/usr/
bin:/bin:/usr/sbin:/sbin

يوجد ملف البرنامج python3 على نظام ماك macOS في المجلدك

 ‎/Library/Frameworks/Python.framework/Versions/3.9/bin

لذلك لا حاجة لإدخال المسار الآتي:

‎/Library/Frameworks/Python.framework/Versions/3.9/bin/python3

أو يمكنك التبديل إلى هذا المجلد أولًا لتشغيل البرنامج، حيث يمكنك إدخال الأمر python3 من أيّ مجلد، وستجده الطرفية في أحد مجلدات متغير البيئة PATH، إذ تُعَد إضافة مجلد البرنامج إلى متغير البيئة PATH اختصارًا مناسبًا.

إذا أردتَ تشغيل برنامج ‎.py، فيجب أن تدخِل الأمر python (أو python3) متبوعًا باسم ملف ‎.py، مما يؤدي إلى تشغيل بايثون التي تشغّل بدورها الشيفرة البرمجية التي تجدها في ملف ‎.py، وستعود إلى موجّه الطرفية بعد انتهاء برنامج بايثون. سيبدو برنامج بسيط يظهِر الرسالة "Hello, world!‎" مثلًا في نظام ويندوز كما يلي:

Microsoft Windows [Version 10.0.17134.648]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Users\Al>python hello.py
Hello, world!

C:\Users\Al>

يؤدي تشغيل الأمر python (أو python3) بدون أيّ اسم ملف إلى أن تشغّل بايثون الصدفة التفاعلية.

تشغيل برامج بايثون على نظام ويندوز

توجد عدة طرق أخرى يمكنك من خلالها تشغيل برامج بايثون على نظام ويندوز بدلًا من فتح نافذة الطرفية لتشغيل سكربتات بايثون، حيث يمكنك الضغط على الاختصار WIN-R لفتح مربع حوار التشغيل Run وإدخال الأمر الآتي:

 py C:\path\to\your\pythonScript.py 

وكما هو موضح في الشكل التالي، يكون البرنامج py.exe مثبَّتًا على المسار C:\Windows\py.exe الموجود في متغير البيئة PATH، وتُعَد كتابة امتداد الملف ‎.exe أمرًا اختياريًا عند تشغيل البرامج.

01_000028.jpg

مربع حوار التشغيل Run في نظام ويندوز

الجانب السلبي لهذه الطريقة هو أنه يجب أن تدخِل المسار الكامل للسكربت الخاص بك، وإذا شغّلنا سكربت بايثون من مربع الحوار، فستُفتح نافذة طرفية جديدة لعرض خرج هذا السكربت، وستُغلق هذه النافذة تلقائيًا عند انتهاء البرنامج، وبالتالي قد تفوِّت بعض الخرج. يمكنك حل هذه المشاكل من خلال إنشاء سكربت دفعي Batch Script، والذي هو ملف نصي صغير له امتداد الملف ‎.bat ويمكنه تشغيل أوامر طرفية متعددة، وهو يشبه إلى حد كبير سكربت الصدفة Shell Script في نظامي ماك macOS ولينكس. يمكنك استخدام محرّر نصوص مثل المفكرة Notepad لإنشاء هذه الملفات.

ننشئ ملف دفعي من خلال إنشاء ملف نصي جديد يحتوي على سطر واحد كما يلي:

@py.exe C:\path\to\your\pythonScript.py %*
@pause

ضع مسار برنامجك المطلق مكان المسار السابق، واحفظ هذا الملف مع امتداد الملف ‎‎.bat‎ مثل الملف pythonScript.bat. تمنع الإشارة @ الموجودة في بداية كل أمر عرضَه في نافذة الطرفية، ويوجّه الرمز *% أيّ وسطاء مُدخَلة في سطر الأوامر بعد اسم الملف الدفعي إلى سكربت بايثون، ويقرأ برنامج بايثون بدوره وسطاء سطر الأوامر من قائمة sys.argv. سيمنعك هذا الملف الدفعي من الاضطرار إلى كتابة المسار المطلق الكامل لبرنامج بايثون في كل مرة تريد تشغيله فيها، وسيضيف ‎@pause عبارة الضغط على أيّ مفتاح للمتابعة ‎"Press any key to continue..."‎ بعد نهاية سكربت بايثون لمنع اختفاء نافذة البرنامج بسرعة كبيرة. ننصحك بوضع جميع الملفات الدفعية وملفات ‎.py في مجلد واحد موجود فعليًا في متغير البيئة PATH مثل المجلد C:\Users\<USERNAME>‎.

لن تحتاج من خلال إعداد ملف دفعي لتشغيل سكربت بايثون إلى فتح نافذة طرفية وكتابة مسار الملف الكامل واسم سكربت بايثون الخاص بك، إذ يمكنك فقط الضغط على الاختصار WIN-R وإدخال pythonScript (اسم الملف pythonScript.bat الكامل ليس ضروريًا)، ثم اضغط على مفتاح ENTER لتشغيل السكربت الخاص بك.

تشغيل برامج بايثون على نظام ماك macOS

يمكنك إنشاء سكربت صدفة لتشغيل سكربتات بايثون الخاصة بك في نظام ماك macOS من خلال إنشاء ملف نصي له امتداد الملف ‎.command. أنشئ ملفًا جديدًا في محرّر النصوص مثل المحرّر TextEdit وأضِف المحتوى التالي:

#!/usr/bin/env bash
 python3 /path/to/your/pythonScript.py

احفظ هذا الملف مع امتداد الملف ‎.command في مجلدك الرئيسي (مثل المجلد ‎/Users/al)، واجعل سكربت الصدفة قابلًا للتنفيذ من خلال تشغيل الأمر chmod u+x yourScript.command في نافذة الطرفية. ستتمكّن الآن من النقر على أيقونة Spotlight (أو الضغط على الاختصار ‎02_000064.jpg-SPACE) وإدخال yourScript.command لتشغيل سكربت الصدفة، والذي بدوره سيشغّل سكربت بايثون الخاص بك.

تشغيل برامج بايثون على نظام أوبنتو لينكس

يتطلب تشغيل سكربتات بايثون في أوبنتو لينكس من قائمة Dash إعدادًا إضافيًا. لنفترض أن لدينا السكربت ‎/home/al/example.py، إذ قد يكون سكربت بايثون الخاص بك موجودًا في مجلد مختلف وباسم ملف مختلف، ونريد تشغيله من قائمة Dash. استخدم أولًا محرر نصوص مثل المحرّر gedit لإنشاء ملف جديد مع المحتوى التالي:

[Desktop Entry]
Name=example.py
Exec=gnome-terminal -- /home/al/example.sh
Type=Application
Categories=GTK;GNOME;Utility;

احفظ هذا الملف في المجلد الآتي:

‎/home/<al>/.local/share/applications 

(مع وضع اسم مستخدمك مكان al) بالاسم example.desktop. إن لم يُظهِر محرّر النصوص مجلد ‎.local لأن المجلدات التي تبدأ بنقطة تُعَد مجلدات مخفية، فيجب أن تحفظه في مجلدك الرئيسي (مثل ‎/home/al‎) وتفتح نافذة طرفية لنقل الملف باستخدام الأمرك

 mv /home/al/example.desktop /home/al/.local/share/applications.

إذا كان الملف example.desktop موجودًا في المجلد الآتي:

 ‎/home/al/.local/share/applications

فستتمكن من الضغط على مفتاح Windows في لوحة المفاتيح لإظهار قائمة Dash وكتابة example.py (أو أي شيء تضعه في الحقل Name)، مما يؤدي إلى فتح نافذة طرفية جديدة أو برنامج gnome-terminal على وجه التحديد الذي يشغّل سكربت الصدفة ‎/home/al/example.sh الذي سننشئه لاحقًا.

أنشئ ملفًا جديدًا مع المحتوى التالي في محرّر النصوص:

#!/usr/bin/env bash
python3 /home/al/example.py
bash

احفظ هذا الملف في الملف ‎/home/al/example.sh الذي هو سكربت صدفة، والذي هو سكربت يشغّل سلسلةً من أوامر الطرفية، حيث يشغّل سكربت الصدفة سكربت بايثون ‎/home/al/example.py ثم يشغّل برنامج صدفة باش Bash Shell. إن لم نضع أمر باش الموجود في السطر الأخير، فستُغلَق نافذة الطرفية بعد انتهاء سكربت بايثون وستفقد أيّ نصٍ يعرضه استدعاء الدالة print()‎ على الشاشة.

يجب أن تضيف أذونات التنفيذ إلى سكربت الصدفة، لذا شغّل الأمر التالي من نافذة الطرفية:

al@ubuntu:~$ chmod u+x /home/al/example.sh

أعددنا الملفين example.desktop و example.sh، وستتمكّن الآن من تشغيل السكربت example.py من خلال الضغط على مفتاح Windows وإدخال example.py أو أي اسم تضعه في الحقل Name الخاص بالملف example.desktop.

تشغيل برامج بايثون مع تعطيل التأكيدات Assertions

يمكنك تعطيل تعليمات assert في برامج بايثون الخاصة بك للحصول على تحسين بسيط في الأداء، لذا ضمّن مفتاح ‎-O بعد الأمر python أو python3 وقبل اسم ملف ‎.py‎ عند تشغيل بايثون من الطرفية، مما يؤدي إلى تشغيل نسخة مُحسَّنة من برنامجك تتخطى عمليات التحقق من التأكيد.

أين تجد المساعدة

يميل المطورون إلى التعلم بالبحث في الإنترنت عن إجابات عن أسئلتهم، وهذه الطريقة مختلفة كثيرًا عمّا اعتاد كثيرون على فعله من حضور دروس لمدرس يلقي محاضرةً ويجيب عن أسئلة الطلاب.

ما يميز استخدام الإنترنت للتعلم أنك ستجد مجتمعات كاملة فيها أشخاص يستطيعون الإجابة عن أسئلتك، بل ومن المرجح أن تكون أسئلتك مجاب عنها مسبقًا وتنتظرك الإجابات عنها لتقرأها.

إذا واجهت رسالة خطأ أو حدث خطبٌ ما أثناء محاولتك تشغيل شيفرتك، فلن تكون أول شخص يواجه هذه المشكلة، وأؤكد لك أن العثور على حلها أسهل مما تظن بكثير.

لنسبب خطأً عمدًا في برنامجنا للتجربة: أدخل ‎'42' + 3 في الصدفة التفاعلية، لا حاجة إلى شرح ما الذي تفعله هذه الشيفرة الآن لأننا سنتعلمها لاحقًا، لكن سيظهر لك الخطأ الآتي:

   >>> '42' + 3
 Traceback (most recent call last):
     File "<pyshell#0>", line 1, in <module>
       '42' + 3
 TypeError: Can't convert 'int' object to str implicitly
   >>>

رسالة الخطأ ➋ تظهر لأن بايثون لا تستطيع فهم التعليمة التي أعطيتها إياها، والجزء الأول ➊ من رسالة الخطأ يبين لنا التعليمة الخطأ ورقم سطرها وما المشكلة التي واجهتها بايثون معها. إذا لم تكن متأكدًا من معنى رسالة الخطأ فابحث عنها في الويب. أدخل "TypeError: Can’t convert ‘int’ object to str implicitly" (بما فيها علامات الاقتباس) في محرك البحث المفضل لديك وستجد عشرات الصفحات التي توضح لك ما هذا الخطأ وما مسبباته كما في الصورة الآتية:

نتائج بحث جوجل حول رسالة خطأ برمجي.png

الشكل 2: نتائج بحث جوجل حول رسالة خطأ برمجي

ستجد أن أحدهم كان له نفس سؤالك وأتى مطور من أولي الخبرة وأجابه. اعلم أنه لا يمكن لشخص واحد أن يعرف كل شيء عن البرمجة، لذا يكون البحث عن إجابات الأسئلة التقنية جزءًا من يومك كمطور برمجيات.

طرح أسئلة برمجية ذكية

إذا لم تجد إجابةً عن سؤالك في الإنترنت، فيمكنك أن تجرب سؤال الخبراء في أحد المنتديات أو المواقع المخصصة مثل Stack Overflow أو مجتمع Learn Programming في Reddit. لكن أبقِ في ذهنك أن هنالك طرائق ذكية لطرح الأسئلة البرمجة لتساعد الآخرين على مساعدتك. فبدايةً احرص على قراءة قسم الأسئلة الشائعة FAQ في تلك المواقع لتعرف الطريقة الصحيحة لطرح السؤال.

حين طرحك لسؤال برمجي فتذكر ما يلي:

  • اشرح ما تحاول فعله، وليس ما فعلته. هذا يسمح لمن يريد مساعدته أن يخبرك إن كنت على الطريق الصحيح لحل المشكلة.
  • حدد النقطة التي يحدث الخطأ عندها، هل تحدث مثلًا حين بدء تشغيل البرنامج كل مرة أم حين وقوع حدث معين؟ وما هو هذا الحدث الذي يحدث ويسبب ظهور الخطأ.
  • انسخ والصق رسالة الخطأ كاملة على مواقع تسمح لك بمشاركة الشيفرات مع الآخرين بسرعة مثل pastebin أو gits.github أو قسم الأسئلة والأجوبة في أكاديمية حسوب، فعبرها تستطيع مشاركة نصوص طويلة دون أن تفقد تنسيق النص، وبعد ذلك ضع رابط URL التابع للشيفرة التي شاركتها في مشاركتك أو سؤالك.
  • اشرح ما حاولت فعله لحل المشكلة، وبهذا تخبر الآخرين أنك بذلت جهدًا لمحاولة حل المشكلة بنفسك.
  • ضع إصدار بايثون الذي تستخدمه (إذ هنالك اختلافات جوهرية بين الإصدار الثاني من مفسر بايثون والإصدار الثالث). اذكر أيضًا نوع نظام تشغيلك وإصداره.
  • إذا حدث الخطأ بعد إجراء تعديل على شيفرتك فاذكر ما هو التعديل الذي أجريته.

أرجو منك أيضًا أن تتبع آداب طرح النقاشات في الإنترنت، فاحرص على سلامة السؤال من الأخطاء الإملائية أو اللغوية، وأن تكون لغته واضحة للجميع، وإذا طرحت سؤالك بالإنكليزية فلا تضعه بأحرف كبيرة، ولا تقدم مطالب غير معقولة وغير منطقية ممن يمد إليك يد المساعدة.

الخلاصة

يرى أغلبية مستخدم الحاسوب أن حاسوبهم هو صندوق سحري بدل رؤيته كأداة يمكنهم استخدامها كيفما يشاؤون؛ وبتعلمك البرمجة ستصل إلى أقوى أدوات المتاحة في عالمنا الحالي وهي القدرة الحاسوبية الهائلة المتوافرة أمامك! وتذكر أن تستمتع بوقتك أثناء البرمجة وتعلمها، فالبرمجة ليست كالجراحة العصبية فلا بأس أن تخطئ وتجرب كما تشاء.

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

ترجمة -وبتصرف- لمقدمة كتاب Automate the boring stuff with Python لصاحبه Al Sweigart.

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...