1

今日は Sphinx ホームページの検索機能をうまく使えなかったので、この質問はさらに難しくなりました。

docstring から文書化したいモジュールのグループがあります。ただし、これらは純粋な Python スクリプトではありません。実行スコープで新しい変数を作成する C# アプリケーションから実行されるため、そのままではコンパイルされません。

Python コンパイラには、未定義のメソッドがあるように見えます (技術的には、C# が IronPython スクリプト エンジンを作成し、メソッドを作成するまではそうです)。

私が実行すると:

sphinx-build -b html output/html

私は得る:

NameError: name 'injected_method' is not defined

Sphinx にコンパイル エラーを無視させ、ドキュメントを生成させるにはどうすればよいですか?

編集:

Sphinx に代わるもの (Epydoc など) が Python スクリプトをコンパイルして関数のシグネチャと docstring を取得する必要がないかどうかを誰かが知っていれば、それも役に立ちます。Sphinx は最も見栄えの良いドキュメント ジェネレーターですが、必要に応じて使用を中止します。

4

3 に答える 3

3

さて、あなたは試すことができます:

  • Injection_method の使用を try/except でラップします。
  • インポート時に実行されるすべての Python コードを除外し、結果を Sphinx にフィードするスクリプトを作成します。
  • できます....わかりました、これ以上のアイデアはありません。:)
于 2009-10-01T22:47:24.217 に答える
0

さて、エラーを回避する方法を見つけました。

以下を使用する代わりに、埋め込みスクリプト環境を設定する場合:

ScriptScope.SetVariable("injected_method", myMethod);

私は今使用しています:

ScriptRuntime.Globals.SetVariable("injected_method", myMethod);

そして、スクリプトで:

import injected_method

次に、検索パスに空白のダミーの inspected_method.py ファイルを作成しました。競合を避けるために、C# プロジェクトのビルド中にダミー ファイルを削除します。

于 2009-10-02T16:10:21.307 に答える