5

自分で作成したPyQtアプリケーションのeggディストリビューションがあり、スフィンクスで生成されたドキュメントが含まれています。アプリケーションからヘルプファイルを呼び出すと、QtWebKit.QWebViewウィンドウでsphinxindex.htmlが開きます。どうやら、index.htmlファイルだけがeggからOSのeggディレクトリに抽出されます(たとえば、Windowsでは[..] \ Application Data \ Python-Eggs \)。

これにより、css、イメージ、リンクが壊れます。これらの他のファイルは解凍されていないように見えるためです。それらはeggファイルには存在しますが、eggディレクトリには存在しません。

私はここで何かが欠けていますか?すべてのhtml、css、画像ファイルをすぐに強制的に解凍する方法はありますか?

4

3 に答える 3

4

別の方法をすでに見つけているようですが、今後の参考のために、http://peak.telecommunity.com/DevCenter/setuptools#automatic-のドキュメントから自動的に行う非回避策を次に示します。リソース抽出[強調を追加]:

リソースが「実際の」ファイルであると期待するツールを使用している場合、またはプロジェクトに非拡張ネイティブライブラリまたはC拡張機能がアクセスできると期待するその他のファイルが含まれている場合は、これらのファイルをeager_resources引数にリストする必要があります。 setup()に追加して、ファイルが一緒に抽出されるようにします

したがって、この場合、実行したいことは次のとおりです。

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

setup.pyで、index.htmlを要求したときに「html」ディレクトリが再帰的に抽出されます(例の「doc」がトップレベルのパッケージであると想定しています)。

eager_resources(キーワードの詳細については、 http://peak.telecommunity.com/DevCenter/setuptools#new-and-changed-setup-keywordsのドキュメントを参照してください)

于 2010-01-29T18:03:14.983 に答える
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)

トリックをしました

于 2009-11-20T13:58:12.977 に答える
1

考えられる原因:そもそもすべてのファイルがeggに含まれているわけではありません。

  • .eggを解凍してこれを確認します(Windowsの場合は.zipファイルに名前を変更する必要がある場合があります)。すべての内容がそこにあるかどうかを確認します。

  • どうやって卵を作ったか見てください。MANIFEST.inファイルを使用して、どのファイルを含めるかをsetuptoolsに指示しますか?そうでない場合は、setuptoolsによるsubversionファイルの自動インクルードを信頼している可能性があります。すべてのsubversionされたファイルは自動的にeggになりますが、pythonファイルはそうしますが、残りはそうではありません。

  • sphinxのドキュメントはおそらく生成されているため、Subversionには含まれていないため、自動的に含まれることはありません。

2つの解決策:

于 2009-11-19T12:17:04.963 に答える