عندما تبدأ في كتابة برامج Python، ستلاحظ أنك لا تحتاج إلى كتابة كل شيء من الصفر. هناك مكتبات جاهزة تساعدك على التعامل مع التاريخ، الأرقام العشوائية، الملفات، النظام، الإنترنت، وغيرها. لكن حتى تستخدم هذه المكتبات، تحتاج إلى أمر مهم جدًا اسمه import.
في هذا الدرس من بايثون العرب سنشرح import في Python بطريقة عملية للمبتدئين: كيف تستورد مكتبة كاملة، وكيف تستورد دالة محددة، وكيف تستورد ملف Python من نفس مشروعك، وما أشهر الأخطاء التي تظهر مثل ModuleNotFoundError أو مشكلة تسمية الملف باسم مكتبة.
{getToc} $title={محتوى المقال}
الفكرة ببساطة: أمر import يسمح لك باستخدام كود جاهز موجود في مكتبة أو ملف آخر بدل أن تكتبه من البداية. {alertInfo}
ما معنى import في Python؟
كلمة import تعني "استيراد". في Python نستخدمها لإحضار مكتبة أو ملف أو جزء من كود موجود في مكان آخر حتى نستطيع استخدامه داخل برنامجنا.
مثال بسيط:
import random
number = random.randint(1, 10)
print(number)
في هذا المثال استوردنا مكتبة random، ثم استخدمنا منها الدالة randint لتوليد رقم عشوائي.
لماذا نستخدم import؟
بدون import ستضطر إلى كتابة كل شيء بنفسك، وهذا غير عملي. Python توفر لك مكتبات جاهزة، ويمكنك أيضًا تثبيت مكتبات خارجية واستخدامها في مشاريعك.
نستخدم import من أجل:
- استخدام مكتبات Python القياسية مثل
randomوdatetimeوpathlib. - استخدام مكتبات خارجية مثل
requestsوpandasبعد تثبيتها. - تقسيم مشروعك إلى أكثر من ملف ثم استيراد الدوال بينها.
- تنظيم الكود وجعله أسهل في الصيانة والتطوير.
نصيحة للمبتدئ: لا تحفظ كل المكتبات دفعة واحدة. تعلم فكرة import أولًا، ثم استخدم المكتبة التي تحتاجها حسب المشروع. {alertSuccess}
الطريقة الأولى: استيراد مكتبة كاملة
أبسط طريقة هي استيراد المكتبة كاملة باستخدام:
import library_name
مثال باستخدام مكتبة math:
import math
result = math.sqrt(25)
print(result)
النتيجة:
5.0
لاحظ أننا كتبنا math.sqrt، لأننا استوردنا المكتبة كاملة، لذلك نحتاج إلى كتابة اسم المكتبة قبل اسم الدالة.
ميزة استيراد المكتبة كاملة
هذه الطريقة واضحة جدًا، خصوصًا للمبتدئين؛ لأنك تعرف من أين جاءت الدالة.
| الميزة | الشرح |
|---|---|
| وضوح المصدر | عندما ترى math.sqrt تعرف أن الدالة جاءت من مكتبة math. |
| تقليل الالتباس | مفيد إذا كان لديك دوال بأسماء متشابهة. |
| مناسب للمبتدئين | يجعل الكود أوضح أثناء التعلم. |
الطريقة الثانية: استيراد دالة محددة
أحيانًا لا تحتاج إلى كل المكتبة، بل تحتاج فقط إلى دالة أو عنصر محدد. هنا تستخدم:
from library_name import function_name
مثال:
from math import sqrt
result = sqrt(25)
print(result)
هنا استخدمنا sqrt مباشرة بدون كتابة math.sqrt؛ لأننا استوردنا الدالة نفسها.
ما الفرق بين import و from import؟
| الطريقة | مثال | كيف تستخدم الدالة؟ |
|---|---|---|
import math |
استيراد المكتبة كاملة | math.sqrt(25) |
from math import sqrt |
استيراد دالة محددة | sqrt(25) |
كلا الطريقتين صحيحة، لكن في بداية التعلم أنصحك باستخدام import library غالبًا لأنها أوضح.
الطريقة الثالثة: استيراد أكثر من دالة
يمكنك استيراد أكثر من دالة من نفس المكتبة:
from math import sqrt, ceil, floor
print(sqrt(16))
print(ceil(4.2))
print(floor(4.8))
هذه الطريقة مفيدة عندما تحتاج إلى عدد قليل من الدوال فقط.
الطريقة الرابعة: استخدام اسم مختصر alias
أحيانًا يكون اسم المكتبة طويلًا، أو متعارف على اختصارها. هنا نستخدم as.
import datetime as dt
now = dt.datetime.now()
print(now)
في هذا المثال استخدمنا dt بدل datetime كاسم مختصر.
لكن لا تبالغ في الاختصارات الغامضة. الاختصار يجب أن يجعل الكود أسهل، لا أصعب.
الطريقة الخامسة: استيراد كل شيء باستخدام *
قد ترى أحيانًا كودًا مثل:
from math import *
هذه الطريقة تستورد كل شيء من المكتبة، لكنها ليست مفضلة للمبتدئين؛ لأنها تجعل مصدر الدوال غير واضح وقد تسبب تضاربًا في الأسماء.
تحذير: تجنب from module import * في مشاريعك التعليمية، واستخدم استيرادًا واضحًا بدلًا منها. {alertWarning}
استيراد مكتبات Python القياسية
Python يأتي مع مكتبات جاهزة كثيرة يمكنك استخدامها بدون تثبيت خارجي. تسمى هذه المكتبات "المكتبة القياسية".
| المكتبة | الاستخدام | مثال سريع |
|---|---|---|
random |
الأرقام والاختيارات العشوائية | random.randint(1, 10) |
datetime |
التاريخ والوقت | datetime.now() |
pathlib |
التعامل مع مسارات الملفات | Path("data.txt") |
os |
التعامل مع النظام والمسارات | os.getcwd() |
json |
قراءة وكتابة JSON | json.load(file) |
مثال: استخدام random
import random
names = ["Ali", "Sara", "Omar"]
winner = random.choice(names)
print("الفائز:", winner)
استوردنا مكتبة random ثم استخدمنا choice لاختيار عنصر عشوائي من القائمة.
مثال: استخدام datetime
from datetime import datetime
now = datetime.now()
print("الوقت الحالي:", now)
هنا استوردنا الكلاس datetime من مكتبة datetime، لذلك يظهر الاسم مرتين في البداية، وهذا قد يربك بعض المبتدئين لكنه صحيح.
استيراد مكتبة خارجية مثبتة عبر pip
إذا كانت المكتبة ليست ضمن Python، يجب تثبيتها أولًا باستخدام pip.
مثال تثبيت مكتبة requests:
python -m pip install requests
ثم استخدامها:
import requests
response = requests.get("https://example.com")
print(response.status_code)
إذا ظهرت رسالة ModuleNotFoundError، فغالبًا المكتبة غير مثبتة في البيئة التي تشغل منها المشروع.
استيراد ملف Python من نفس المشروع
من أهم استخدامات import في المشاريع العملية أنك تستطيع تقسيم الكود إلى أكثر من ملف. مثلًا بدل أن تضع كل الدوال في main.py، يمكنك إنشاء ملف مساعد.
هيكل المشروع:
my_project/
│
├── main.py
└── helpers.py
داخل helpers.py:
def say_hello(name):
return "Hello " + name
داخل main.py:
from helpers import say_hello
message = say_hello("Ali")
print(message)
لاحظ أننا كتبنا helpers بدون .py. عند الاستيراد لا تكتب امتداد الملف.
خطأ شائع: كتابة .py عند الاستيراد
هذا خطأ شائع عند المبتدئين:
import helpers.py
الصحيح:
import helpers
أو:
from helpers import say_hello
مثال عملي: تقسيم مشروع آلة حاسبة
بدل أن نضع كل شيء في ملف واحد، يمكن أن نقسم المشروع هكذا:
calculator_project/
│
├── main.py
└── operations.py
داخل operations.py:
def add(a, b):
return a + b
def subtract(a, b):
return a - b
داخل main.py:
from operations import add, subtract
print(add(10, 5))
print(subtract(10, 5))
بهذه الطريقة يصبح الكود منظمًا: ملف للعمليات، وملف لتشغيل البرنامج.
متى أقسم الكود إلى ملفات؟
لا تحتاج إلى تقسيم كل مشروع صغير جدًا. لكن ابدأ في التقسيم عندما:
- يصبح ملف
main.pyطويلًا جدًا. - تتكرر لديك دوال كثيرة.
- تريد فصل جزء من الكود عن جزء آخر.
- تريد تنظيم المشروع ورفعه إلى GitHub.
- تريد إعادة استخدام دوالك في أكثر من ملف.
ما هو ModuleNotFoundError؟
رسالة ModuleNotFoundError تعني أن Python لم يجد المكتبة أو الملف الذي تحاول استيراده.
مثال:
ModuleNotFoundError: No module named 'requests'
قد يحدث هذا بسبب:
- المكتبة غير مثبتة.
- تستخدم بيئة افتراضية غير مفعلة.
- اسم الملف غير صحيح.
- تشغل الملف من مجلد خاطئ.
- سميت ملفك باسم مكتبة موجودة.
أخطاء شائعة عند استخدام import في Python
1. تسمية الملف باسم مكتبة
لا تسم ملفك باسم مكتبة مثل:
random.py
datetime.py
requests.py
إذا فعلت ذلك، قد يحاول Python استيراد ملفك بدل المكتبة الأصلية، فتظهر أخطاء غريبة.
استخدم أسماء أوضح مثل:
random_examples.py
date_tools.py
requests_demo.py
2. نسيان تثبيت المكتبة الخارجية
إذا كتبت:
import requests
ولم تكن مكتبة requests مثبتة، ستظهر رسالة خطأ. ثبتها بالأمر:
python -m pip install requests
3. استخدام بيئة افتراضية غير مفعلة
قد تكون المكتبة مثبتة داخل venv، لكنك تشغل المشروع خارجها. فعل البيئة أولًا ثم شغل الملف.
4. كتابة امتداد .py عند الاستيراد
عند استيراد ملف من نفس المشروع، لا تكتب .py.
5. تشغيل الملف من مكان خاطئ
إذا كان المشروع منظمًا في مجلدات، شغل البرنامج من جذر المشروع حتى يستطيع Python العثور على الملفات.
قائمة فحص عند ظهور مشكلة import
| السؤال | ماذا تفعل؟ |
|---|---|
| هل اسم المكتبة صحيح؟ | راجع الإملاء والحروف الكبيرة والصغيرة. |
| هل المكتبة خارجية؟ | ثبتها باستخدام pip. |
| هل البيئة الافتراضية مفعلة؟ | تأكد من ظهور (venv). |
| هل سميت ملفك باسم مكتبة؟ | غير اسم الملف. |
| هل الملف موجود في نفس المجلد؟ | راجع هيكل المشروع. |
هل كتبت .py داخل import؟ |
احذف الامتداد من أمر الاستيراد. |
أفضل ممارسات import للمبتدئين
- ضع أوامر
importفي أعلى الملف. - استخدم أسماء ملفات واضحة ولا تسمها مثل المكتبات.
- ابدأ باستيراد المكتبة كاملة إذا كان ذلك أوضح لك.
- استخدم
from importعندما تحتاج دوال محددة فقط. - تجنب
import *في المشاريع التعليمية. - فعّل البيئة الافتراضية قبل تشغيل مشروع يستخدم مكتبات خارجية.
- نظم ملفات مشروعك قبل تقسيم الكود.
روابط داخلية مفيدة من بايثون العرب
- كورس أساسيات بايثون للمبتدئين
- شرح البيئة الافتراضية venv في Python للمبتدئين
- شرح pip في Python وتثبيت مكتبات بايثون
- كيف تنظم ملفات مشروع Python للمبتدئين بطريقة صحيحة
- شرح مكتبة random في Python للمبتدئين
- شرح مكتبة datetime في Python للمبتدئين
مصادر خارجية مفيدة للتوسع
- توثيق Python الرسمي لنظام الاستيراد import
- توثيق Python الرسمي حول Modules
- فهرس مكتبات Python القياسية
الخلاصة
أمر import من الأساسيات المهمة في Python، لأنه يسمح لك باستخدام مكتبات جاهزة أو ملفات أخرى داخل مشروعك. يمكنك استيراد مكتبة كاملة باستخدام import، أو استيراد دالة محددة باستخدام from import، أو تقسيم مشروعك إلى ملفات واستيراد الدوال بينها.
ابدأ بالطريقة الواضحة، وتجنب الأسماء المربكة، ولا تسم ملفاتك بأسماء مكتبات مشهورة. وإذا ظهرت لك مشكلة ModuleNotFoundError، راجع اسم المكتبة، وتأكد من تثبيتها، وتفعيل البيئة الافتراضية، وتشغيل المشروع من المكان الصحيح.
الخلاصة العملية: استخدم import لتنظيم مشروعك والاستفادة من المكتبات الجاهزة، لكن انتبه لأسماء الملفات والبيئة الافتراضية ومكان تشغيل المشروع. {alertSuccess}
أسئلة شائعة مع إجاباتها
ما معنى import في Python؟
يعني استيراد مكتبة أو ملف أو دالة حتى تستطيع استخدامها داخل برنامجك.
ما الفرق بين import و from import؟
import يستورد المكتبة كاملة وتستخدمها باسمها، أما from import فيستورد دالة أو عنصرًا محددًا وتستخدمه مباشرة.
هل أكتب .py عند استيراد ملف من نفس المشروع؟
لا. إذا كان الملف اسمه helpers.py تكتب import helpers بدون الامتداد.
لماذا تظهر ModuleNotFoundError؟
لأن Python لم يجد المكتبة أو الملف المطلوب. قد يكون السبب أن المكتبة غير مثبتة، أو البيئة غير مفعلة، أو اسم الملف غير صحيح.
هل import * طريقة جيدة؟
ليست مفضلة للمبتدئين؛ لأنها تجعل مصدر الدوال غير واضح وقد تسبب تضاربًا في الأسماء.
أين أضع أوامر import داخل الملف؟
الأفضل وضع أوامر import في أعلى ملف Python قبل كتابة بقية الكود.




