Frage

Ich habe ein Ei Verteilung einer PyQt Anwendung, die ich mir selbst zu bauen, und es enthält Sphinx generierte Dokumentation. Wenn ich die Hilfedatei von der Anwendung aufrufen, öffnet es die Sphinx index.html in einem QtWebKit.QWebView Fenster. Offenbar nur die Datei index.html aus dem Ei in das Ei-Verzeichnis des OS extrahiert wird (zum Beispiel [..] \ Anwendungsdaten \ Python-Eggs \ unter Windows).

Dies führt in gebrochenem css, gebrochen Bilder und defekte Links, da diese anderen Dateien scheinen nicht ausgepackt zu erhalten; sie sind in der Ei-Datei, aber nicht in dem Ei-Verzeichnis.

Bin ich etwas fehlt hier? Gibt es eine Möglichkeit alle HTML zu zwingen, Auspacken, CSS, Bilddatei sofort?

War es hilfreich?

Lösung

Ich sehe, dass Sie bereits einen anderen Weg gefunden, es zu tun, sondern auch für die Zukunft, hier ist die Nicht-Umgehung, wie es automatisch zu tun, von der Dokumentation unter http://peak.telecommunity.com/DevCenter/setuptools#automatic-resource-extraction [Hervorhebung hinzugefügt]:

  

Wenn Sie Tools verwenden, die Ihre Ressourcen erwarten „echte“ Dateien zu sein, oder Ihr Projekt enthält Nicht-Erweiterung nativen Bibliotheken oder andere Dateien, dass Ihre C-Erweiterungen für den Zugriff erwarten zu können, können Sie diese Dateien auflisten müssen in das eager_resources Argument setup (), so, dass die Dateien zusammen extrahiert werden

Also, in diesem Fall, was Sie zu tun haben:

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

in Ihrem setup.py, die das ‚html‘ Verzeichnis werden dazu führen, dass rekursiv extrahiert werden, wenn Sie für die index.html fragen (unter der Annahme, dass ‚doc‘ in Ihrem Beispiel ist ein Top-Level-Paket).

(Sie können mehr über die eager_resources Stichwort in der Dokumentation erfahren Sie http://peak.telecommunity.com/DevCenter/setuptools#new-and-changed-setup-keywords )

Andere Tipps

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'))

statt

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

    return QUrl(html)

hat den Trick

Mögliche Ursache:. Nicht alle Dateien in das Ei in erster Linie enthalten

  • Überprüfen Sie dies, indem Sie die .egg unzipping (man könnte es zu einer ZIP-Datei umbenennen müssen für die auf Windows). Überprüfen Sie, ob alle Inhalte sind.

  • Lesen Sie, wie Sie das Ei gemacht. Verwenden Sie ein MANIFEST.in Datei Setuptools zu sagen, welche Dateien enthalten? Wenn nicht, sind zu vertrauen Sie wahrscheinlich auf Setuptools automatische Aufnahme von Subversion-Dateien. Alle subversion'ed Dateien automatisch in das Ei am Ende, Python-Dateien tun, der Rest nicht.

  • Die Sphinx-Dokumentation ist wahrscheinlich erzeugt, so dass es nicht in Subversion ist, so dass es nicht automatisch eingeschlossen bekommt.

Zwei Lösungen:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top