أنا أضيف وثائق إلى مشروع Django الخاص بي ( رابط github ، المشروع مفتوح المصدر) باستخدام أبو الهول ، لكني أتلقى الكثير من الأخطاء عند محاولة إنشاء autodoc لملفات python. أقوم بتضمين ملف models.py مع docstrings ولكن ، عند الجري make html
إنني أتلقى أخطاء مختلفة. لقد أجريت بعض التغييرات والخلل يتغير ، لكنني لست متأكدًا مما إذا كنت أقوم بإصلاحها أو إنشاء خطأ جديد فقط. إذا أزلت تضمين ملف models.py ، فستعمل جميعها بشكل مثالي. بمعنى آخر ، يتم إنشاء الخطأ فقط عندما أقوم بتضمين الأسطر التالية في ملف .rst:
.. automodule:: account.models
:members:
دعني أريك ما فعلت.
- أول خطأ لي كان التالي ، عندما قمت بتشغيل
make html
أمر:
WARNING: autodoc: failed to import module u'account.models'; the following exception was raised: No module named account.models
لقد أضفت الأسطر التالية إلى أبو الهول confg.py
ملف:
import os
import sys
sys.path.insert(0, os.path.abspath('../../'))
لقد قمت بإنشاء مجلد يسمى docs
لتضمين جميع الملفات التي تم إنشاؤها بواسطة sphinx-quickstart
الأمر ، لهذا السبب ، فإن قيمة abspath هي ../../
.
- حسنا ، الآن ، عندما أركض
make html
الأمر ، حصلت على الخطأ الثاني:
ImproperlyConfigured: Requested setting USE_I18N, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
لقد دمجت وحدة Django الداخلية لتمكين اللغات المتعددة في التطبيق ، لست متأكدًا من كيفية تأثيرها على إنشاء المستندات ، ولكن لإصلاح هذا الخطأ ، أضفت الأسطر التالية إلى أبو الهول conf.py
ملف:
from django.conf import settings
settings.configure()
- الآن ، إذا قمت بتشغيل
make html
أمر ، لدي الرسالة التالية:
"The translation infrastructure cannot be initialized before the " AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready. Check that you don't make non-lazy gettext calls at import time.
"لإصلاحه" (لست متأكدًا مما إذا كان قد أصلحه بالفعل) ، أمتلك الأسطر التالية لأبو الهول conf.py
ملف:
import django
django.setup()
- ولكن الآن ، أتلقى الرسالة التالية عند تشغيل
make html
أمر:
RuntimeError: Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
والآن لا يمكنني العثور على خيار لإصلاحه. إذا قمت بإزالة تضمين ملفات .py من ملفات .rst ، فستعمل جميعها بشكل مثالي ، لكنني بحاجة إلى تضمين المستندات التي تم إنشاؤها في جميع ملفات python الخاصة بي.
كيف يمكنني إصلاح ذلك؟
شكرا جزيلا.
روابط مهمة:
إعدادات مشروعي: settings.py
مجلد أبو الهول: docs /
ملاحظة: أضفت محليا الأسطر التالية إلى ملفات conf.py :
from django.conf import settings
settings.configure()
import django
django.setup()
هذه التغييرات ليست مرئية في مستودع جيثب.