سؤال

لديّ توزيع بيض لتطبيق PYQT الذي أبنيه بنفسي ، ويحتوي على وثائق تم إنشاؤها بواسطة sphinx. عندما أقوم باستدعاء ملف المساعدة من التطبيق ، فإنه يفتح index.html sphinx في نافذة qtwebkit.qwebview. على ما يبدو ، يتم استخراج ملف index.html فقط من البيضة في دليل البيض لنظام التشغيل (على سبيل المثال [..] data python-eggs تحت Windows).

ينتج عن هذا CSS المكسور ، والصور المكسورة ، والروابط المكسورة ، لأن هذه الملفات الأخرى لا يبدو أنها تفريغ ؛ فهي موجودة في ملف البيض ، ولكن ليس في دليل البيض.

نسيت شيئا ما هنا؟ هل هناك طريقة لفرض تفريغ جميع HTML و CSS وملف الصورة على الفور؟

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

المحلول

أرى أنك قد وجدت بالفعل طريقة أخرى للقيام بذلك ، ولكن للرجوع إليها في المستقبل ، إليك الطريقة غير الوظيفية للقيام بذلك تلقائيًا ، من الوثائق في http://peak.telecommunity.com/devcenter/setuptools#automatic-resource-extraction تم اضافة التأكيدات]:

إذا كنت تستخدم أدوات تتوقع أن تكون مواردك "ملفات حقيقية" ، أو يتضمن مشروعك المكتبات الأصلية غير الممتدة أو غيرها لإعداد () ، بحيث يتم استخراج الملفات معًا

لذلك ، في هذه الحالة ، ما تريد القيام به هو:

eager_resources=['doc/sphinx/build/html', 'doc/sphinx/build/html/index.html']

في setup.py ، والذي سيؤدي إلى استخراج دليل "HTML" بشكل متكرر عندما تطلب الفهرس. html (على افتراض أن "المستند" في مثالك عبارة عن حزمة من المستوى الأعلى).

(يمكنك معرفة المزيد عن eager_resources الكلمة الرئيسية في المستندات في http://peak.telecommunity.com/devcenter/setuptools#new-and-changed-setup-keywords)

نصائح أخرى

def get_help_url(self):
    from pkg_resources import resource_filename
    from doc import sphinx
    import os
    from PyQt4.QtCore import QUrl
    html_path = resource_filename(sphinx.__name__, os.path.join('build', 'html'))

    return QUrl(os.path.join(html_path, 'index.html'))

بدلاً من

    html = resource_filename(sphinx.__name__, os.path.join('build', 'html', 'index.html'))

    return QUrl(html)

هل الحيلة

السبب المحتمل: لا يتم تضمين جميع الملفات في البيض في المقام الأول.

  • تحقق من ذلك عن طريق فك. egg (قد تحتاج إلى إعادة تسميته إلى ملف .zip لذلك على Windows). تحقق مما إذا كانت جميع المحتويات موجودة.

  • انظر إلى كيف صنعت البيضة. هل تستخدم ملفًا من البيان. إذا لم يكن الأمر كذلك ، فمن المحتمل أن تكون تثق في إدراج ملفات Subversion التلقائية لـ Setuptools. جميع ملفات Subversion'ed تنتهي تلقائيًا في البيض ، لا تفعل ملفات Python ، والباقي لا.

  • من المحتمل أن يتم إنشاء وثائق sphinx ، لذلك لا يتم تنفيذها ، لذلك لا يتم تضمينها تلقائيًا.

حلان:

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