Configuração
A API C do Qiskit requer uma configuração mínima.
QISKIT_PYTHON_EXTENSION
Se definidos antes da inclusão qiskit.hde, os arquivos de cabeçalho definirão todos os símbolos de forma segura para uso com os módulos de extensão d Python. Isso significa que todas as funções da API serão avaliadas como desreferências de ponteiros de função a partir de uma tabela de pesquisa.
Esta é uma macro definida pelo usuário e não pelo próprio Qiskit.
qk_import
int qk_import(void)
Importe a API C do Qiskit a partir do pacote Pythonqiskit -space.
É necessário chamar esta função uma vez por unidade de compilação, antes de tentar chamar qualquer função da API C. O não cumprimento dessa exigência geralmente resultará em referências a ponteiros nulos durante a execução.
Normalmente, é recomendável fazer isso dentro da função de inicialização do seu PyInit_* módulo. Por exemplo, em 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);
}Esta função só é definida se QISKIT_PYTHON_EXTENSION tiver sido definida antes da inclusão de qiskit.h.
Retorna
0 em caso de sucesso, valor negativo em caso de falha.