Skip to main content
IBM Quantum Platform

Konfiguration

Die Qiskit-C-API erfordert nur minimale Konfiguration.

QISKIT_PYTHON_EXTENSION

Wenn sie vor dem Einbinden qiskit.hdefiniert werden, definieren die Header-Dateien alle Symbole in einer Weise, die für die Verwendung mit Erweiterungsmodulen von „ Python “ sicher ist. Das bedeutet, dass alle API-Funktionen zu Funktionszeiger-Dereferenzen aus einer Nachschlagetabelle ausgewertet werden.

Dies ist ein benutzerdefiniertes Makro, das nicht von Qiskit selbst definiert wurde.

qk_import

int qk_import(void)

Importiere die Qiskit-C-API aus dem Paket „ Pythonqiskit -space“.

Sie müssen diese Funktion einmal pro Kompilierungseinheit aufrufen, bevor Sie versuchen, C-API-Funktionen aufzurufen. Andernfalls kommt es in der Regel zur Dereferenzierung eines Null-Zeigers zur Laufzeit.

In der Regel sollten Sie dies innerhalb der Initialisierungsfunktion Ihres PyInit_* Moduls tun. Zum Beispiel in 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);
}

Diese Funktion ist nur definiert, wenn vor dem Einbinden QISKIT_PYTHON_EXTENSION von qiskit.hdefiniert wurde.

Rückgabe

0 bei Erfolg, ein negativer Wert bei Fehlschlag.

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.