我已經編寫了一個Python模塊,其中包含一個用C語言編寫的子模塊:模塊本身名爲foo
,C部分爲foo._bar
。該結構是這樣的:將Sphinx與distutils構建的C擴展結合使用
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來記錄項目,並在foo
模塊上使用autodoc擴展名。這意味着我需要在構建文檔之前構建項目。
由於我使用distutils構建,所構建的模塊最終以一些不同名稱的dir build/lib.linux-ARCH-PYVERSION
- 這意味着我不能將目錄硬編碼到一個Sphinx'conf.py
。
那麼,如何配置我的distutils setup.py
腳本以在構建的模塊上運行Sphinx生成器?
爲了完整起見,這裏的調用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])
這是一個很好的方法 - 我可以把它放在`conf.py`(我認爲)。我明天會嘗試。 – detly 2011-01-16 06:56:01