Skip to main content
IBM Quantum Platform

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.

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.