Fahmy Mostafa نشر 3 يوليو 2021 أرسل تقرير نشر 3 يوليو 2021 لدي مجلد يحتوي على عدد من ملفات بايثون كالتالي: foo/ ├── dir/ | ├── file.py | └── boo.py └── helpers.py أريد أن أقوم بإستدعاء ملف helpers.py داخل الملف file.py، كيف أقوم بهذا الأمر بإستخدام جملة import؟ 1 اقتباس
1 عبدالله عبدالرحمن11 نشر 3 يوليو 2021 أرسل تقرير نشر 3 يوليو 2021 هناك عدة طرق لإستدعاء ملف من المجلد الأب ، فيمكنك إضافة المسار الأب الى المسارات التي بايثون سيقوم بالبحث فيها بإستخدام دالة path كالآتي import sys sys.path.append("..") import helpers كما يمكنك إضافة المسار الأب أو أي مسار تريد إستيراد الوحدات modules منه كالآتي # إستدعاء دالة sys import sys # إضافة المسار الى الرقم 1 لأن 0 هو المسار الحالي sys.path.insert(1, '/path/to/application/app/folder') # إستيراد الوحدة من المسار المختلف import file 3 اقتباس
0 عبدالباسط ابراهيم نشر 4 يوليو 2021 أرسل تقرير نشر 4 يوليو 2021 كما شرح عبدالمجيد فإنه يمكنك إضافة المسار الذي تريده من خلال ال sys.path ويمكنك إضافة المسار بداخله ولكن إذا أردت أن يكون البرنامج أن يجد المسار الأب تلقائياً يمكنك استخدام ال os.path.abspath() التي تقوم بإرجاع المسار الأب import os, sys sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import helpers 1 اقتباس
0 ريم المهدي نشر 5 يوليو 2021 أرسل تقرير نشر 5 يوليو 2021 (معدل) يمكنك ايضاً إستخدام الدالة append لإضافة المسار في حال كنت في نفس المجلد الموجود فيه الملف الذي تريد الوصول إليه: import sys, os, inspect currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) parentdir = os.path.dirname(currentdir) sys.path.insert(0, parentdir) import myfile as f يبدأ البرنامج أولا بإستيراد الدوال اللازمة، و من ثم لإستيراد file يجب أن يكون مقروء في PYTHONPATH وهي عبارة عن متغير البيئة الذي يقوم بتحميل كل المكتبات و الملفات التي سيتم تحميلها في بايثون لإتمام عملية التنفيذ وهي ايضاً الملفات التي تكون متوفرة في sys.path يتم التحميل كما هو موضح في السطر الثاني، لاحظ أن الفرق بين append و insert هو أن append تقوم بالإضافة في نهاية sys.path مباشرة لكن insert تقوم بإدراجه في مؤشر محدد كما في حالتنا 0. تم التعديل في 5 يوليو 2021 بواسطة Reem Elmahdi 1 اقتباس
السؤال
Fahmy Mostafa
لدي مجلد يحتوي على عدد من ملفات بايثون كالتالي:
foo/ ├── dir/ | ├── file.py | └── boo.py └── helpers.py
أريد أن أقوم بإستدعاء ملف helpers.py داخل الملف file.py، كيف أقوم بهذا الأمر بإستخدام جملة import؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.