私はCで書かれたサブモジュールを含むPythonモジュールを書きました:モジュール自体が呼び出されfoo、C部分はfoo._barです。構造は次のようになります。
src/
foo/__init__.py <- contains the public stuff
foo/_bar/bar.c <- the C extension
doc/ <- Sphinx configuration
conf.py
...
foo/__init__.pyそれを補強するためにインポート_barし、有用なものがfooモジュールに公開されます。_barこれはビルド時に正常に機能しますが、ビルドされるまで存在しないため、コンパイルされていない形式では明らかに機能しません。
Sphinxを使用してプロジェクトを文書化し、モジュールでautodoc拡張機能を使用したいと思いfooます。これは、ドキュメントを作成する前にプロジェクトを作成する必要があることを意味します。
distutilsを使用してビルドするため、ビルドされたモジュールは、さまざまな名前のdirになります。build/lib.linux-ARCH-PYVERSIONつまり、ディレクトリをSphinxにハードコーディングすることはできませんconf.py。
setup.pyでは、ビルドされたモジュールに対してSphinxビルダーを実行するようにdistutilsスクリプトを構成するにはどうすればよいですか?
完全を期すために、ここに次の呼び出しがありますsetup(「偽の」ものはサブクラス化するカスタムビルダーでbuildあり、build_ext):
setup(cmdclass = {
'fake': fake,
'build_ext_fake' : build_ext_fake
},
package_dir = {'': 'src'},
packages = ['foo'],
name = 'foo',
version = '0.1',
description = desc,
ext_modules = [module_real])