Skip to main content
IBM Quantum Platform

구성

Qiskit C API는 설정 과정이 매우 간단합니다.

QISKIT_PYTHON_EXTENSION

를 포함하기 전에 qiskit.h정의하면, 헤더 파일은 Python 확장 모듈과 함께 사용하기에 안전한 방식으로 모든 심볼을 정의합니다. 이는 모든 API 함수가 조회 테이블을 통한 함수 포인터의 참조 해제로 평가된다는 것을 의미합니다.

이것은 사용자 정의 매크로이며, Qiskit 자체에서 정의된 것이 아닙니다.

qk_import

int qk_import(void)

Python -space qiskit 패키지에서 Qiskit C API를 가져옵니다.

이 함수는 컴파일 단위당 한 번씩, C API 함수를 호출하기 전에 반드시 호출해야 합니다. 이를 준수하지 않을 경우, 일반적으로 런타임 시 null 포인터 참조 오류가 발생합니다.

일반적으로 이 작업은 모듈 초기화 PyInit_* 함수 내에서 수행하는 것이 좋습니다. 예를 들어, 다음과 같이 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);
}

이 함수는 를 포함하기 전에 가 정의된 QISKIT_PYTHON_EXTENSION qiskit.h경우에만 정의됩니다.

리턴

성공 시 0, 실패 시 음수.

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.