0

私は Raspberry Pi と PiFace インターフェイス モジュールを含むプロジェクトに取り組んでいます。プロジェクトは Python で開発されており、Sphinx でいくつかのモジュールを自動ドキュメント化しようとすると問題が発生しました。ライブラリを使用していpifacedigitalioますが、このライブラリを開発マシンにインストールしましたが、Sphinx はモジュールのドキュメント化を拒否し、ハードウェアが存在しないために例外がスローされていると不平を言います。これは開発マシンであるため、ハードウェアは存在しません。ソフトウェアのテストには条件を使用するだけですif hwpresent then skipが、実際にはこれらの部分を Sphinx でドキュメント化したいと考えています。実行時に生成されるエラーmake htmlは次のとおりです。

/home/user/current/working/docs/src.rst:10: WARNING: autodoc: failed to import module u'src.billete'; the following exception was raised:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/sphinx/ext/autodoc.py", line 335, in     import_object
__import__(self.modname)
File "/home/user/current/working/src/bill.py", line 4, in  <module>
piface_obj = piface.PiFaceDigital()
  File "/usr/local/lib/python2.7/dist-packages/pifacedigitalio/core.py", line 82, in __init__
self.init_board()
  File "/usr/local/lib/python2.7/dist-packages/pifacedigitalio/core.py", line 107, in init_board
h=self.hardware_addr, b=self.bus, c=self.chip_select))
NoPiFaceDigitalDetectedError: No PiFace Digital board detected (hardware_addr=0, bus=0, chip_select=0).

Sphinx がコードを解釈するのを回避し、ソースを解析する方法はありますか? ダミーの戻り値を使用して手動で変更しようとしましpifacedigitalio/core.pyたが、Sphinx がフリーズします。

4

1 に答える 1

0

Sphinx を実行する前に、これらのモジュールのMockを含むディレクトリを PYTHONPATH に配置する必要があります。彼らの Doc をチェックしてください。代わりにmock.patchを使用してください。

于 2014-10-15T22:41:20.893 に答える