Configurazione
L'API C di Qiskit richiede una configurazione minima.
QISKIT_PYTHON_EXTENSION
Se definiti prima dell'inclusione qiskit.hdi, i file di intestazione definiranno tutti i simboli in una modalità compatibile con i moduli di estensione di Python. Ciò significa che tutte le funzioni API daranno come risultato il dereferenziamento di puntatori a funzioni da una tabella di ricerca.
Si tratta di una macro definita dall'utente e non da Qiskit stesso.
qk_import
int qk_import(void)
Importa l'API C di Qiskit dal pacchetto Python -space qiskit.
È necessario chiamare questa funzione una volta per ogni unità di compilazione, prima di tentare di chiamare qualsiasi funzione dell'API C. In caso contrario, ciò comporterà solitamente dei tentativi di dereferenziazione di puntatori nulli durante l'esecuzione.
In genere è consigliabile eseguire questa operazione all'interno della funzione di inizializzazione del PyInit_* modulo. Ad esempio, 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);
}Questa funzione è definita solo se QISKIT_PYTHON_EXTENSION è stata definita prima di includere qiskit.h.
Risultati
0 in caso di successo, un valore negativo in caso di errore.