بيثون حزم - استيراد من الدرجة وليس الملف

StackOverflow https://stackoverflow.com/questions/45122

  •  09-06-2019
  •  | 
  •  

سؤال

أقول لقد الملف التالي هيكل:

app/
  app.py
  controllers/
    __init__.py
    project.py
    plugin.py

إذا app/controllers/project.py يحدد فئة المشروع ، app.py أن استيراد مثل هذا:

from app.controllers.project import Project

أود أن تكون قادرة على القيام:

from app.controllers import Project

كيف يتم ذلك ؟

هل كانت مفيدة؟

المحلول

تحتاج إلى وضع

from project import Project

في controllers/__init__.py.

لاحظ أنه عندما المطلق الواردات تصبح الافتراضي (بايثون 2.7?), سوف تحتاج إلى إضافة نقطة قبل اسم الوحدة النمطية (لتجنب التصادم مع مستوى أعلى نموذج اسمه project) ، أي

from .project import Project
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top