شرح import في Python للمبتدئين: استيراد المكتبات والملفات داخل المشروع

شرح import في Python للمبتدئين واستيراد المكتبات والملفات داخل المشروع

عندما تبدأ في كتابة برامج 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}

الطريقة الأولى: استيراد مكتبة كاملة

شرح استيراد مكتبة كاملة في Python باستخدام import مع مثال عملي للمبتدئين

أبسط طريقة هي استيراد المكتبة كاملة باستخدام:

import library_name

مثال باستخدام مكتبة math:

import math

result = math.sqrt(25)
print(result)

النتيجة:

5.0

لاحظ أننا كتبنا math.sqrt، لأننا استوردنا المكتبة كاملة، لذلك نحتاج إلى كتابة اسم المكتبة قبل اسم الدالة.

ميزة استيراد المكتبة كاملة

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

الميزة الشرح
وضوح المصدر عندما ترى math.sqrt تعرف أن الدالة جاءت من مكتبة math.
تقليل الالتباس مفيد إذا كان لديك دوال بأسماء متشابهة.
مناسب للمبتدئين يجعل الكود أوضح أثناء التعلم.

الطريقة الثانية: استيراد دالة محددة

شرح استخدام from import في Python لاستيراد دالة محددة من مكتبة

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

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 من نفس المشروع

شرح استيراد ملف 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

أخطاء شائعة عند استخدام 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 * في المشاريع التعليمية.
  • فعّل البيئة الافتراضية قبل تشغيل مشروع يستخدم مكتبات خارجية.
  • نظم ملفات مشروعك قبل تقسيم الكود.

روابط داخلية مفيدة من بايثون العرب

مصادر خارجية مفيدة للتوسع

الخلاصة

أمر 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 قبل كتابة بقية الكود.

إرسال تعليق

أحدث أقدم