Pregunta

Tengo una distribución de huevos de una aplicación de PyQt, que construyo a mí mismo, y contiene esfinge documentación generada. Cuando llamo el archivo de ayuda de la aplicación se abre la esfinge index.html en una ventana QtWebKit.QWebView. Al parecer, sólo el archivo index.html se extrae del huevo en huevo directorio del sistema operativo (por ejemplo, [..] \ Datos de programa \ Python-Huevos \ en Windows).

Esto se traduce en css rota, imágenes rotas, y los enlaces rotos, ya que no parecen estos otros archivos para obtener descomprimido; que están presentes en el archivo de huevo, pero no en el directorio de huevo.

Me estoy perdiendo algo aquí? ¿Hay una manera de forzar a desempacar todo html, css, archivo de imagen inmediatamente?

¿Fue útil?

Solución

veo que ya has encontrado otra manera de hacerlo, pero para futuras referencias, aquí está la forma no solución alternativa para hacerlo de forma automática, desde la documentación a http://peak.telecommunity.com/DevCenter/setuptools#automatic-resource-extraction [énfasis añadido]:

  

Si está utilizando herramientas que esperan que sus recursos sean archivos "reales", o su proyecto incluye bibliotecas nativas no de extensión u otros archivos que las extensiones de C esperan poder acceder, es posible que necesite para listar los archivos en eager_resources el argumento de configuración (), modo que los archivos serán extraídos juntos

Por lo tanto, en este caso, lo que se quiere hacer es tener:

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

en su setup.py, lo que hará que el directorio 'html' que se extrae de forma recursiva cuando se pide el index.html (asumiendo que 'doc' en su ejemplo es un paquete de nivel superior).

(Puede encontrar más información sobre la palabra clave eager_resources en la documentación a http://peak.telecommunity.com/DevCenter/setuptools#new-and-changed-setup-keywords )

Otros consejos

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

en lugar de

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

    return QUrl(html)

resolvieron el problema

La causa probable:. No todos los archivos están incluidos en el huevo en el primer lugar

  • Marque esta descomprimiendo el .egg (puede que tenga que cambiar el nombre a un archivo .zip para que en las ventanas). Compruebe si todos los contenidos están ahí.

  • Mira cómo se hizo el huevo. ¿Utiliza un archivo MANIFEST.in para contar setuptools qué archivos incluir? Si no es así, es probable que confiar en la inclusión automática de archivos setuptools' subversión. Todos los archivos subversion'ed caen automáticamente en el huevo, los archivos de Python a, el resto no lo hace.

  • La documentación Esfinge es probable que genera, por lo que no está en la subversión, por lo que no quede incluido automáticamente.

dos soluciones:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top