كيفية استخدام مستندات SPHINX التلقائي عند تجميع ملف Python

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

سؤال

هذا السؤال أصعب اليوم لأنني لم يكن لدي أي حظ باستخدام وظيفة البحث على صفحة SPHINX الرئيسية اليوم.

لدي مجموعة من الوحدات النمطية التي أريد توثيقها من DocStrings. ومع ذلك، هذه ليست نصوص بيثون نقية. لن تجميع كما هو الحال، لأنها تعمل من تطبيق C # الذي يخلق متغير جديد في نطاق تنفيذ.

إلى مترجم ثعبان، يبدو أن لدي طريقة غير محددة (والتي أقوم بها من الناحية الفنية، حتى أن أقوم C # بإنشاء محرك النصي IronPython وإنشاء الطريقة).

عندما أركض:

sphinx-build -b html output/html

انا حصلت:

NameError: name 'injected_method' is not defined

كيف يمكنني الحصول على أبو الهول لتجاهل أخطاء الترجمة وإنشاء وثيقتي فقط؟

تعديل:

إذا كان أي شخص يعرف ما إذا كان بديل ل SPHINX (مثل Epydoc) لا يتعين عليه ترجمة البرنامج النصي Python للحصول على توقيعات الوظائف و DocStrings، فسيكون ذلك مفيدا أيضا. أبو الهول هو أفضل مولد توثيق المظهر، لكنني سأتخلى عنها إذا كان علي ذلك.

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

المحلول 3

حسنا، لقد وجدت طريقة للالتفاف حول الأخطاء.

عند إعداد بيئة البرمجة النصية المضمنة، بدلا من استخدام:

ScriptScope.SetVariable("injected_method", myMethod);

أنا الآن باستخدام:

ScriptRuntime.Globals.SetVariable("injected_method", myMethod);

ثم، في البرنامج النصي:

import injected_method

ثم قمت بإنشاء ملف Dummy Injected_method.py في مسار البحث الخاص بي، وهو فارغ. أحذف ملف الدمية أثناء إنشاء مشروعي C # لتجنب أي صراعات.

نصائح أخرى

حسنا، يمكنك أن تجرب:

  • لف استخدام الحقن_method في محاولة / باستثناء.
  • كتابة البرنامج النصي الذي يقوم بتصفية جميع كود Python قيد التشغيل عند وقت الاستيراد، ويغذي النتيجة في أبو الهول.
  • يمكنك .... حسنا، ليس لدي المزيد من الأفكار. :)

ربما يمكنك تحديد الحقن_Method كدالة فارغة بحيث تعمل الوثائق. ستحتاج إلى التأكد من حدوث تعريف حقن _method الذي تقوم بحقنه بعد كعب المحقن الجديد.

#By empty function I mean a function that looks like this
def injected_method():
  pass
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top