Skip to main content
IBM Quantum Platform
This page is from a dev version of Qiskit SDK. This is a new interface that does not exist in the stable version.

C API interface from Python

qiskit.capi

This module provides Python-space interactions with Qiskit’s public C API.

For documentation on the C API itself, see Qiskit C API.


Build-system interaction

The Python package qiskit contains all of the Qiskit C API header files, and a compiled shared-object library that includes all of the C-API functions. You can access the locations of these two objects with the functions get_include() and get_lib() respectively.

Warning

You typically should not link directly against the output of get_lib(), unless you know what you are doing. In particular, directly linking against this object is not a safe way to build a distributable Python extension module that uses Qiskit’s C API.

However, if you understand all the caveats of direct linking, you can use the function to get the location of the library.

get_include

qiskit.capi.get_include()

GitHub

Get the directory containing the qiskit.h C header file and the internal qiskit/*.h auxiliary files.

When using Qiskit as a build dependency, you typically want to include this directory on the include search path of your compiler, such as:

qiskit_include=$(python -c 'import qiskit.capi; print(qiskit.capi.get_include())')
gcc -I "$qiskit_include" my_bin.c -o my_bin

The location of this directory within the Qiskit package data is not fixed, and may change between Qiskit versions. You should always use this function to retrieve the directory.

Returns

an absolute path to the package include-files directory.

Return type

str

get_lib

qiskit.capi.get_lib()

GitHub

Get the path to a shared-object library that contains all the C-API exported symbols.

Warning

You typically should not link directly against this object. In particular, directly linking against this object is not a safe way to build a Python extension module that uses Qiskit’s C API.

You can, if you choose, use ctypes to access the C API symbols contained in this object, though beware that the C-API types declared in the header file are not interchangeable with the Python objects that correspond to them.

The location and name of this file within the Qiskit package data is not fixed, and may change between Qiskit versions.

Returns

an absolute path to the shared-object library containing the C-API exported symbols.

Return type

str

Was this page helpful?
Report a bug, typo, or request content on GitHub.