2009-11-19 6 views
5

Tengo una distribución de huevos de una aplicación PyQt que construyo yo misma, y ​​contiene documentación generada por la esfinge. Cuando llamo al archivo de ayuda desde la aplicación, abre sphinx index.html en la ventana QtWebKit.QWebView. Aparentemente, solo el archivo index.html se extrae del huevo en el directorio de huecos del sistema operativo (por ejemplo, [..] \ Application Data \ Python-Eggs \ en Windows).forzar el desembalaje de ciertos directorios de huevos

Esto da como resultado css rotos, imágenes rotas y enlaces rotos, porque parece que estos otros archivos no se desempaquetan; están presentes en el archivo de huevos, pero no en el egg-directory.

¿Me falta algo aquí? ¿Hay alguna manera de obligar a desempaquetar todo el html, css, archivo de imagen inmediatamente?

Respuesta

4

veo que ya has encontrado otra forma de hacerlo, pero para referencia futura, aquí está la forma no alternativa de hacerlo aut omatically, a partir de la documentación en 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 sus extensiones en C espere ser capaz de acceder, es posible que necesite una lista de los archivos en el argumento eager_resources a setup(), para que los archivos serán extraídos juntos

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

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

en su configuración.py, que hará que el directorio 'html' se extraiga recursivamente cuando solicite index.html (suponiendo que 'doc' en su ejemplo es un paquete de nivel superior).

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

+0

¡muchas gracias por la información! –

1

Causa probable: no todos los archivos están incluidos en el huevo en primer lugar.

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

  • Mire cómo hizo el huevo. ¿Utiliza un archivo MANIFEST.in para decirle a setuptools qué archivos incluir? De lo contrario, probablemente confíe en la inclusión automática de los archivos de subversión de herramientas de configuración. Todos los archivos subversivos terminan automáticamente en el huevo, los archivos python hacen, el resto no.

  • La documentación de sphinx probablemente se haya generado, por lo que no está en subversión, por lo que no se incluye automáticamente.

dos soluciones:

+0

gracias por la respuesta, pero como he mencionado: ..., porque no parecen" estos otros archivos para obtener descomprimido; están presentes en el archivo de huevos, pero no en el egg-directory ". Solo index.html está en este directorio, nada más (por ejemplo, css, otro html) –

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

hizo el truco

Cuestiones relacionadas