4

Sphinx を使用して小さな Python プロジェクトの文書化を開始しようとしています。

クラスの 1 つ ( MyClass.pysamplecode.rst )のドキュメントを整理 (および自動生成) しようとする場所を作成しました。

これはその一部ですsamplecode.rst:

MyClass.py
----------------------------------
.. autoclass:: backlib.classes.MyClass
   :members:

しかし、 を実行しようとするmake htmlと、インポート エラーが発生し、' ' がインポートされません (生成された .html にMyClass' ' の空のエントリが表示されます)。MyClass

Traceback (most recent call last):de                                                                                                                                                                                
  File "/usr/lib/pymodules/python2.7/sphinx/ext/autodoc.py", line 329, in import_object
    __import__(self.modname)
  File "/home/borrajax/Projects/myProject/backlib/classes/MyClass.py", line 4, in <module>
    from backlib.database import BaseClass
[ ... ]
    from grokcore.component import sort_components
ImportError: cannot import name sort_components

...そして少し後に...

/home/borrajax/Projects/myProject/docs/source/samplecode.rst:16: (WARNING/2) autodoc can't import/find module 'backlib.classes.MyClass', it reported error: "cannot import name sort_components", please check your spelling and sys.path

/home/borrajax/Projects/myProject/docs/source/samplecode.rst:19: (WARNING/2) don't know which module to import for autodocumenting u'MyClass' (try placing a "module" or "currentmodule" directive in the document, or giving an explicit module name)

grokcoreの人生を台無しにしているのは、インストールされるモジュールで$HOME/.buildout/eggs/あり、私が作成していないか、文書化する必要がありません。

見つかったすべての卵$HOME/.buildout/eggs/をPythonpath(Sphinxのconf.pyファイル内)に追加しましたが、何も修正されなかったので、別のアプローチを試みています(あきらめています)ので、ここで質問します:これをスキップするために何かできますかエラーの種類は?

/home/borrajax/Projects/myProject/backlib/classes/MyClass.pyコメントをきれいなhtmlページに表示したいだけです。それだけです。

4

2 に答える 2

3

さて...私は問題を見つけました。

Mike Stederの回答は、私がグーグルで疑うようになった何かを確認しました。SphinxのこのタイプのImporErrorsは、通常、ある種の設定ミスのかなり些細なエラーです。sys.pathそれほど複雑なことは何もないので、 (マイクが彼の答えで示唆しているように)ソースコードが置かれているディレクトリを持っていたとしても、私は掘り下げ始めました。

私がやったことはPythonPathを台無しにすることだと推測し始めました。実際にやったことは、Sphinxのファイル.eggsを介して見つかったものを追加することだけでした(したがって、何か問題があったはずです)。ディレクトリを確認したところ、このプロジェクトで使用されているメインのWebフレームワーク(Grok )の更新により、の新しいバージョンがディレクトリにダウンロードされたことがわかりました(ほとんどの場合、2つのバージョンがあります)。ディレクトリを完全に削除し、Grokプロジェクトを再インストールしました(必要な.eggsを再度ダウンロードしましたが、同じ.eggの複数のバージョンがありません)。$HOME/.buildout/conf.py$HOME/.buildout/.eggs$HOME/.buildout/.eggs.buildout

そして今、Sphinx'sは私のクラスmake htmlのための素晴らしいエントリを作成します:)MyClass

于 2012-08-09T15:33:33.797 に答える