Configuration
L'API C de Qiskit ne nécessite qu'une configuration minimale.
QISKIT_PYTHON_EXTENSION
Si elles sont définies avant l'inclusion de qiskit.h, les fichiers d'en-tête définiront tous les symboles d'une manière compatible avec les modules d'extension d' Python. Cela signifie que toutes les fonctions de l'API se traduiront par des déréférencements de pointeurs de fonction à partir d'une table de correspondance.
Il s'agit d'une macro définie par l'utilisateur et non par Qiskit lui-même.
qk_import
int qk_import(void)
Importez l'API C de Qiskit à partir du paquet Pythonqiskit -space.
Vous devez appeler cette fonction une fois par unité de compilation, avant de tenter d'appeler toute fonction de l'API C. Si cette consigne n'est pas respectée, cela entraîne généralement des déréférencements de pointeurs nuls lors de l'exécution.
En général, vous devrez effectuer cette opération dans la fonction d'initialisation de votre PyInit_* module. Par exemple, dans 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);
}Cette fonction n'est définie que si QISKIT_PYTHON_EXTENSION a été définie avant l'inclusion de qiskit.h.
Retours
0 en cas de réussite, une valeur négative en cas d'échec.