2016-05-26 6 views
0

私は.soにコンパイルされたCコードを含むPythonパッケージを持っています。私のPythonコードでは、私はdocstringsを持っています。私のCコードでは、私もdocstringsを持っています。 sphinxもCのソースコードで提供されているdocstringsに敏感なので、私は自動的にドキュメントを生成できますか?PythonとCからのスフィンクスのドキュメントを生成

答えて

1

はい、コンパイル済みモジュールの一部としてPythonインタプリタで使用できるdocstringを意味するとします。たとえば、

static PyMethodDef methods[] = { 
    ... 
    {"convolve", 
    Pconvolve, 
    METH_VARARGS, 
    "convolve(xi,yi,x,dx,y): compute convolution of width dx[k] at points x[k],\nreturned in y[k]" 
    }, 
    ... 

    {0} 
} ; 

です。

通常のautodocの魔法がそれらを拾います。

doxygenのようなC関数の横にあるCコメントのdocstringを意味する場合は、いいえ。それらを抽出して最初のファイルに変換する独自のコードを記述する必要があります。

+0

たとえば、Cで 'foobar()'と呼ばれるPython関数が定義されています。 Pythonインタプリタでは、私は '' >> help(foobar) 'を実行できます。 Cのソースコードで書かれたドキュメントストリングは、Pythonインタプリタに表示されます。それはあなたが「Pythonインタプリタに利用できる」という意味ですか(それに続いてSphinxへ)? – Kit

+0

はい。上記の例は、Cのメソッドでdocstringを設定する方法を示しています。あなたはsfinxの 'automodule'指令を使ってそれらを取り出すことができます。 – Neapolitan

関連する問題