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

كيف أستطيع استدعاء وحدة في بايثون عن طريق إعطاء كامل المسار ؟

ahmed1990

السؤال

Recommended Posts

  • 0

هنالك طرق متعددة لاستدعاء مكتبة/وحدة معينة عن طريق مسارها، ومن أسهل هذه الطرق استدعاء مكتبة imp ومن ثم استخدام دالة load_source لاستدعاء المكتبة/الوحدة المطلوبة كما في المثال التالي:

import imp

foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()

ملاحظة: تم ازالت هذه المكتبة في الإصدار 3.4 من البايثون.
أما لو كنت تستخدم بايثون 3.3+ فيمكنك في هذه الحالة استخدام دالة SourceFileLoader من مكتبة importlib كما في المثال التالي:

from importlib.machinery import SourceFileLoader

foo = SourceFileLoader("module.name", "/path/to/file.py").load_module()
foo.MyClass()

ومن الطرق الأخرى لاستدعاء وحدة/مكتبة يمكنك إضافة مسار المكتبة/الوحدة عن طريق sys.path.append ومن ثم يمكنك استدعاء جميع الوحدات/المكتبات الموجودة في ذلك المسار كما في هذا المثال:

import sys
# the mock-0.3.1 dir contains testcase.py, testutils.py & mock.py
sys.path.append('/foo/bar/mock-0.3.1')

from testcase import TestCase
from testutils import RunTests
from mock import Mock, sentinel, patch

المصدر

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

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

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

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...