私は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])