Primeros Pasos¶
Instalación¶
¡Comencemos a usar Qiskit! Lo primero que debes hacer es elegir cómo vas a ejecutar e instalar los paquetes. Hay tres formas principales de hacer esto:
Qiskit es compatible con Python 3.7 o posterior. Sin embargo, tanto Python como Qiskit son ecosistemas en evolución y, a veces, cuando se producen nuevas versiones en uno u otro, puede haber problemas de compatibilidad.
Deberás descargar Python en tu sistema local para comenzar. Se recomienda Jupyter para interactuar con Qiskit.
Recomendamos utilizar entornos virtuales de Python para separar claramente Qiskit de otras aplicaciones y mejorar tu experiencia.
Crea un entorno mínimo con solo Python instalado en él.
python3 -m venv /path/to/virtual/environment
Activa tu nuevo entorno.
source /path/to/virtual/environment/bin/activate
Nota: si estás usando Windows, usa los siguientes comandos en PowerShell.
python3 -m venv c:\path\to\virtual\environment
c:\path\to\virtual\environment\Scripts\Activate.ps1
A continuación, instala el paquete Qiskit.
pip install qiskit
Si los paquetes se instalaron correctamente, puedes ejecutar pip list
para ver los paquetes activos en tu entorno virtual.
Si tienes la intención de utilizar la funcionalidad de visualización o los cuadernos de Jupyter, se recomienda instalar Qiskit con el soporte adicional de visualization
:
pip install qiskit[visualization]
Vale la pena señalar que si eres usuario de zsh (que es el shell predeterminado en las versiones más recientes de macOS), deberás poner qiskit[visualization]
entre comillas:
pip install 'qiskit[visualization]'
Los siguientes proveedores de nube tienen Qiskit preinstalado en sus entornos:
IBM Quantum Lab
Build quantum applications and experiments with Qiskit in a cloud programming environment.

Strangeworks
A platform that enables users and organizations to easily apply quantum computing to their most pressing problems and research.

La instalación de los elementos desde el código fuente te permite acceder a la versión actualizada más recientemente de Qiskit en lugar de usar la versión en el repositorio del índice de paquetes de Python (Python Package Index, PyPI). Esto te dará la capacidad de inspeccionar y ampliar la última versión del código Qiskit de manera más eficiente.
Al instalar los elementos y componentes desde el código fuente, por defecto se usará su versión de development
(que corresponde a la rama de git master
), a diferencia de la versión stable
(que contiene la misma base de código como los paquetes pip
publicados). Dado que las versiones de development
de un elemento o componente suelen incluir nuevas características y cambios, generalmente requieren el uso de la versión de development
del resto de los elementos también.
La instalación de los elementos desde el código fuente requiere el siguiente orden de instalación para evitar la instalación de versiones de elementos que puedan ser inferiores a las deseadas si la versión pip
es inferior a la de las versiones del código fuente:
Para trabajar con varios componentes y elementos simultáneamente, utiliza los siguientes pasos para cada elemento.
Nota
Los paquetes Terra y Aer requieren un compilador para construirlos desde el código fuente antes de que puedas instalarlos. Ignis, Aqua y el backend de IBM Quantum Provider no requieren un compilador.
Nota
Debido al uso del empaquetado de espacios de nombres (namespace) en Python, se debe tener cuidado al instalar los paquetes. Si planeas instalar cualquier elemento desde el código fuente, no uses el metapaquete qiskit
. Además, sigue esta guía y utiliza un entorno virtual independiente para el desarrollo. Si eliges mezclar una instalación existente con su desarrollo, consulta https://github.com/pypa/sample-namespace-packages/blob/master/table.md para ver el conjunto de combinaciones de métodos de instalación que funcionan juntos.
Set up the Virtual Development Environment
python3 -m venv QiskitDevenv
source QiskitDevenv/bin/activate
Installing Terra from Source
La instalación desde el código fuente requiere que tengas el compilador de Rust en tu sistema. Para instalar el compilador de Rust, el camino recomendado es usar rustup, que es un instalador de Rust multiplataforma. Para usar rustup puedes ir a:
que proporcionará instrucciones sobre cómo instalar rust en tu plataforma. Además de rustup, también hay otros métodos de instalación disponibles.
Una vez que está instalado el compilador de Rust, estarás listo para instalar Qiskit Terra.
Clona el repositorio de Terra.
git clone https://github.com/Qiskit/qiskit-terra.git
La clonación del repositorio crea una carpeta local llamada
qiskit-terra
.cd qiskit-terra
Si quieres ejecutar pruebas o verificaciones de linting, instala los requerimientos de desarrollador.
pip install -r requirements-dev.txt
Instalar
qiskit-terra
.pip install .
Si deseas instalarlo en modo editable, es decir, que los cambios en el código del proyecto no requieran ser instalados de nuevo, puedes hacerlo con:
pip install -e .
La instalación en modo editable construirá las extensiones compiladas en modo de depuración sin optimizaciones. Esto afectará el rendimiento en tiempo de ejecución del código compilado. Si deseas utilizar el modo editable y construir el código compilado que está publicado, con las optimizaciones habilitadas, puedes ejecutar:
python setup.py build_rust --release --inplace
después de ejecutar pip y eso reconstruirá el binario en modo de liberación. Si estás trabajando en el código de Rust en Qiskit, necesitarás reconstruir el código de extensión cada vez que realices un cambio local. pip install -e .
solo compilará la extensión de Rust cuando sea ejecutado, por lo que cualquier cambio local que hagas en el código de Rust después de ejecutar pip no se reflejará en el paquete instalado a menos que reconstruyas la extensión. Puedes aprovechar el comando anterior build_rust
para hacer esto (con o sin --release
en función de si deseas compilar en modo de depuración o modo de liberación).
A continuación, puedes ejecutar los ejemplos de código después de instalar Terra. Puedes ejecutar el ejemplo con el siguiente comando.
python examples/python/using_qiskit_terra_level_0.py
Installing Aer from Source
Clona el repositorio de Aer.
git clone https://github.com/Qiskit/qiskit-aer
Para instalar Aer depende del sistema operativo que estés utilizando. Dado que Aer es un programa en C++ compilado con una interfaz en Python, existen dependencias externas a Python para construir el binario de Aer que no se pueden instalar universalmente dependiendo del sistema operativo.
Linux
Instala los requerimientos del compilador.
Construir Aer requiere un compilador de C++ y las cabeceras de desarrollo.
Si estas usando Fedora o una distribución de Linux equivalente, instala usando:
dnf install @development-tools
Para Ubuntu/Debian instálalo usando:
apt-get install build-essential
Instala las cabeceras de desarrollo de OpenBLAS.
Si estas usando Fedora o una distribución de Linux equivalente, instala usando:
dnf install openblas-devel
Para Ubuntu/Debian instálalo usando:
apt-get install libopenblas-dev
macOS
Instala las dependencias.
Para usar el compilador Clang en macOS, necesitas instalar una librería adicional para soportar OpenMP. Puedes usar brew para instalar esta y otras dependencias.
brew install libomp
En seguida, instala una implementación de BLAS; OpenBLAS es la opción por defecto.
brew install openblas
Después, instala
Xcode Command Line Tools
.xcode-select --install
Windows
Todas las dependencias se agregan como parte del compilador de Visual C++ instalado anteriormente, por lo que no se necesita configuración adicional.
Qiskit Aer es un framework de simulación de alto rendimiento para circuitos cuánticos. Proporciona distintos backends para lograr diferentes objetivos de simulación.
Construye e instala qiskit-aer directamente
Si tienes pip <19.0.0 instalado y tu entorno no requiere una compilación personalizada, ejecuta:
cd qiskit-aer pip install .
Esto construirá los binarios e instalará Aer.
Alternativamente, si tienes instalado un pip más nuevo o tienes algún requerimiento personalizado, puedes construir una Python wheel manualmente.
cd qiskit-aer python ./setup.py bdist_wheel
If you need to set a custom option during the wheel build, refer to Custom options.
Después de que construyas la Python wheel, se almacenará en el directorio
dist/
en el repositorio de Aer. La versión exacta dependerácd dist pip install qiskit_aer-*.whl
El nombre exacto del archivo de salida de la Python wheel depende de la versión actual de Aer en desarrollo.
Custom options
El sistema de construcción de Aer usa scikit-build para ejecutar la compilación cuando lo construye con la interfaz de Python. Actúa como una interfaz para setuptools para llamar a CMake y compilar los binarios para tu sistema local.
Debido a la complejidad de compilar los binarios, es posible que tengas que pasar opciones a ciertas partes del proceso de construcción. La forma de pasar variables es:
python setup.py bdist_wheel [skbuild_opts] [-- [cmake_opts] [-- build_tool_opts]]
donde los elementos entre corchetes [] son opcionales, y skbuild_opts
, cmake_opts
, build_tool_opts
deben ser reemplazados por banderas de tu elección. Una lista de opciones de CMake está disponible aquí: https://cmake.org/cmake/help/v3.6/manual/cmake.1.html#options. Por ejemplo, podrías ejecutar algo como:
python setup.py bdist_wheel -- -- -j8
Esto es pasar la bandera -j8 al sistema de compilación subyacente (que en este caso es Automake), indicándole que deseas compilar en paralelo usando 8 procesos.
Por ejemplo, un caso de uso común para estas banderas (flags) en Linux es especificar una versión particular del compilador de C++ a ser usado (normalmente si el valor predeterminado es demasiado viejo):
python setup.py bdist_wheel -- -DCMAKE_CXX_COMPILER=g++-7
el cuál comunicará a CMake que use el comando g++-7 en vez del predeterminado g++ al compilar Aer.
Otro caso de uso común para esto, dependiendo de tu entorno, es que es posible que debas especificar el nombre de tu plataforma y desactivar el enlazamiento estático.
python setup.py bdist_wheel --plat-name macosx-10.9-x86_64 \
-- -DSTATIC_LINKING=False -- -j8
Aquí --plat-name
es una bandera para las setuptools para especificar el nombre de la plataforma a utilizar en los metadatos del paquete, -DSTATIC_LINKING
es una bandera para hacer que CMake deshabilite el enlazamiento estático, y -j8
es una bandera para hacer que Automake utilice 8 procesos para la compilación.
Una lista de opciones comunes dependiendo de la plataforma es:
Plataforma |
Herramienta |
Opción |
Caso de Uso |
---|---|---|---|
Todas |
Automake |
-j |
Seguido de un número, establece el número de procesos que se utilizarán para la compilación. |
Linux |
CMake |
-DCMAKE_CXX_COMPILER |
Se utiliza para especificar un compilador de C++ particular; esto a menudo es necesario si tu g++ predeterminado es demasiado antiguo. |
OSX |
setuptools |
–plat-name |
Se usa para especificar el nombre de la plataforma en el paquete Python de salida. |
OSX |
CMake |
-DSTATIC_LINKING |
Se utiliza para especificar si se debe utilizar o no el enlazado estático. |
Nota
Algunas de estas opciones no son específicas de la plataforma. Estas plataformas en particular se enumeran porque se usan comúnmente en un entorno local. Consulta la documentación de la herramienta para obtener más información.
Soporte de la Plataforma¶
Qiskit se esfuerza por admitir tantas plataformas como sea posible, pero debido a las limitaciones en los recursos de prueba disponibles y la disponibilidad de la plataforma, no todas las plataformas son compatibles. El soporte de plataforma para Qiskit se divide en 3 niveles con diferentes grados de soporte para cada nivel. Para plataformas fuera de estas, es probable que Qiskit todavía se pueda instalar, pero no se ha probado y tendrás que compilar Qiskit (y probablemente las dependencias de Qiskit) desde la fuente.
Además, Qiskit solo es compatible con CPython. Actualmente, no se admite la ejecución con otros intérpretes de Python.
Nivel 1¶
Las plataformas compatibles con el nivel 1 se prueban completamente en upstream como parte de los procesos de desarrollo para garantizar que cualquier cambio propuesto funcione correctamente. Los binarios precompilados se construyen, prueban y publican en PyPI como parte del proceso de lanzamiento. Se espera que estas plataformas se puedan instalar con solo un entorno de Python en funcionamiento, ya que todas las dependencias están disponibles en estas plataformas.
Las plataformas de nivel 1 actualmente son:
Linux x86_64 (distribuciones compatibles con la especificación de empaquetado manylinux 2014).
macOS x86_64 (10.9 o superior)
Windows 64 bit
Nivel 2¶
Las plataformas de nivel 2 no se prueban en upstream como parte del proceso de desarrollo. Sin embargo, los binarios precompilados se construyen, prueban y publican en PyPI como parte del proceso de lanzamiento y se puede esperar que estos paquetes se instalen solo con un entorno de Python en funcionamiento.
Las plataformas de nivel 2 actualmente son:
Linux i686 (distribuciones compatibles con la especificación de empaquetado manylinux 2014) para Python < 3.10
Windows 32 bit para Python < 3.10
Linux aarch64 (distribuciones compatibles con la especificación de empaquetado manylinux 2014)
Nivel 3¶
Las plataformas de nivel 3 no se prueban en upstream como parte del proceso de desarrollo. Los binarios precompilados se construyen y publican en PyPI como parte del proceso de lanzamiento, sin ninguna prueba. Es posible que no se puedan instalar solo con un entorno de Python en funcionamiento y pueden requerir un compilador C/C++ o programas adicionales para crear dependencias desde el origen como parte del proceso de instalación. El soporte para estas plataformas es únicamente de mejores intenciones.
Las plataformas de nivel 3 actualmente son:
Linux ppc64le (distribuciones compatibles con la especificación de empaquetado manylinux 2014)
Linux s390x (distribuciones compatibles con la especificación de empaquetado manylinux 2014)
macOS arm64 (10.15 o superior)
Linux i686 (distribuciones compatibles con la especificación de empaquetado manylinux 2014) para Python >= 3.10
Windows 32 bit para Python >= 3.10
¿Listo para empezar?…¶
Qiskit from the ground up
Learn how to build, execute, and post-process quantum circuits with Qiskit.
Start learning QiskitDive into the tutorials
Find out how to leverage Qiskit for everything from single-circuits to full quantum application development.
Qiskit tutorials