• 0

كيفية إستدعاء ملف بايثون في مجلد آخر؟

لدي ملفين بايثون وأريد أن أقوم بإستدعاء الأول في داخل الثاني حتى أتمكن من إستخدام الدوال والمتغيرات الموجدة فيه، وبنيه الملفات كالتالي:

projects
|── blog
|   |── helpers
|       |── files.py
|── dashboard
    |── helpers
        |── all.py

كيف أقوم بإستدعاء الملف files.py من داخل الملف all.py؟

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

هناك عدة طرق لعمل ذلك منها: إستدعاء الوحدة module الذي تسمى ب sys بإستخدام إحدى الوظيفتين

ويتم تحديد المسار على حالتين إما يكون المسار كامل absolute أو يكون المسار نسبي أو ذو صلة relative

فالمسار المطلق أو الكامل absolute نبداء بالجذر root أي بهذه الإشارة / مثل

/projects/blog/helpers

إذا كان المجلد projects في الجذر وهنا تكمن مشكلة بحيث يجب علينا أن نقوم بتحديد المسار كاملاً

أما المسار النسبي relative فهو تحديد المسار نسبياً للمكان الذي نحن فيه ولا يجب أن نعرف المسار الكامل absolute ، فإذا أردنا الوصول الى مسار files.py من مسار all.py بإستخدام المسار النسبي فيمكننا كتابة المسار هكذا

../../blog/helpers

أما كيفية إستدعائه في بايثون فهناك عدة طرق وسنستخدم المسار النسبي لأنه أفضل عندما لايكون لدينا المسار الكامل

1- sys.path.append كما في الكود

import sys
sys.path.append('../../blog/helpers')
import files

2- sys.path.insert كما في الكود

import sys
sys.path.insert(1,'../../blog/helpers')
import files

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يمكنك استخدام sys.path.append بهذا الشكل 

import sys
sys.path.append('/.../projects/blog/helpers')

import files

أو يمكنك استخدام sys.path.insert 

import sys
sys.path.insert(1, '/.../projects/blog/helpers')

import files

 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

هناك عدة طرق للقيام بذلك لكن أسهلها أن تقوم بوضع الملفين في نفس المسار (نفس المجلد) 
ثم ببساطة اكتب من داخل الملف all.py التعليمة * from files import

على سبيل المثال هنا لدي ملفين الأول reg والثاني un وفي الملف reg يوجد تابع  اسمه  sigmoid فقمت باستدعاءه من داخل الملف un  بهذه الطريقة.
وأنصحك بالتعامل مع محرر الأكواد  جوبيتر فهو يجعل  كل هذه الأمور أسهل

2021-05-30_20h03_57.png

2021-05-30_20h03_47.png

تمّ تعديل بواسطة Ali Haidar Ahmad
1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن