Skip to main content
IBM Quantum Platform

構成

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で行ってください。