構成
Qiskit C APIの設定は最小限です。
QISKIT_PYTHON_EXTENSION
をインクルードする前に定義 qiskit.hしておけば、ヘッダーファイルは、 Python 拡張モジュールで使用しても安全なモードで、すべてのシンボルを定義します。 つまり、すべてのAPI関数は、ルックアップテーブルからの関数ポインタの参照として評価されることになります。
これはユーザー定義のマクロであり、Qiskit自体によって定義されたものではありません。
qk_import
int qk_import(void)
Python -space パッケージ qiskit から Qiskit C API をインポートします。
コンパイル単位ごとに1回、C API関数を呼び出す前に、この関数を呼び出す必要があります。 これを行わないと、通常、実行時にヌルポインタ参照エラーが発生します。
通常、これはモジュ PyInit_* ールの初期化関数内で実行するのが良いでしょう。 例えば、次のような場合 my_extension.c:
#define QISKIT_PYTHON_EXTENSION
#include <Python.h>
#include <qiskit.h>
static struct PyModuleDef my_extension_mod = {
.m_base = PyModuleDef_HEAD_INIT,
.m_name = "my_extension",
};
PyMODINIT_FUNC PyInit_my_extension(void) {
if (qk_import() < 0) {
return NULL;
}
return PyModuleDef_Init(&my_extension_mod);
}この関数は、includeの前に``が定義 qiskit.hされていた QISKIT_PYTHON_EXTENSION 場合にのみ定義されます。
戻り値
成功時は0、失敗時は負の数。
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。