2009-11-19 3 views
5

나는 자신을 빌드하는 PyQt 어플리케이션의 알 분포를 가지고 있으며, 스핑크스 생성 문서를 포함하고 있습니다. 응용 프로그램에서 도움말 파일을 호출하면 QtWebKit.QWebView 창에서 sphinx index.html이 열립니다. 분명히 index.html 파일 만이 달걀에서 OS의 egg 디렉토리 (예 : Windows의 [Application] \ Python-Eggs \)에 추출됩니다.특정 달걀 디렉토리의 압축을 풉니 다.

이렇게하면 다른 파일의 압축이 풀리지 않기 때문에 깨진 CSS, 깨진 이미지 및 깨진 링크가 표시됩니다. 그들은 계란 파일에 있지만 계란 디렉토리에는 없습니다.

여기에 뭔가가 있습니까? 모든 HTML, CSS, 이미지 파일을 즉시 푸는 방법이 있습니까?

답변

4

나는 이미 다른 발견했습니다 볼 그것을 할 수있는 방법이지만, 미래의 참조를 위해, 여기에 그것을 해결할 수있는 비공식적 인 방법이있다. omatically, http://peak.telecommunity.com/DevCenter/setuptools#automatic-resource-extraction의 문서에서 [강조는 추가] :

당신이 당신의 자원이 "진짜"파일 또는 프로젝트가 아닌 확장 네이티브 라이브러리 또는 C 확장 다른 파일이 포함 될 것으로 기대 도구를 사용하는 경우 액세스 할 수 있기를 기대합니다, 당신은 설정()에 eager_resources 인수에서 해당 파일을 나열해야 할 수도 있습니다, 그래서 파일은 당신이 원하는 무엇을,이 경우,

그래서 함께 추출됩니다 있는 항목 :

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

py를 사용하면 index.html을 요청할 때 'html'디렉토리가 재귀 적으로 추출됩니다 (예제에서 'doc'는 최상위 패키지 임).

는 답변

+0

통찰력에 대해 감사드립니다! –

1

추정 원인 : 모든 파일이 첫 번째 장소의 달걀에 포함되어있는 것은 아닙니다.

  • .egg의 압축을 해제하여 확인하십시오 (Windows의 경우 .zip 파일로 이름을 바꿔야 할 수도 있음). 모든 내용이 있는지 확인하십시오.

  • 달걀을 어떻게 만드는지보세요. MANIFEST.in 파일을 사용하여 setuptools에 포함 할 파일을 지정합니까? 그렇지 않다면 아마도 setuptools가 자동 변환 파일을 자동으로 포함하는 것을 믿을 것입니다. 모든 subversion'ed 파일은 자동으로 달걀에, 파이썬 파일은 끝까지, 나머지는 끝나지 않습니다.

  • 스핑크스 문서가 생성되어 전복되지 않았으므로 자동으로 포함되지 않습니다.

두 솔루션 :

+0

덕분에 (당신은 http://peak.telecommunity.com/DevCenter/setuptools#new-and-changed-setup-keywords에서 문서의 eager_resources 키워드에 대한 자세한 내용을 찾을 수 있습니다)하지만, 내가 언급 한 바와 같이 : "... 때문에 이러한 다른 파일은 압축을 푼 얻을하지 않는 것; 그들은 계란 파일에 있지만 계란 디렉토리에는 존재하지 않습니다. " index.html 만이 디렉토리에 있으며 다른 것은 없습니다 (예 : CSS, 기타 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')) 

대신

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

    return QUrl(html) 

않았다 트릭 참조

관련 문제