Spanish
Languages
English
Bengali
French
German
Japanese
Korean
Portuguese
Spanish
Tamil

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.

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.

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:

  1. qiskit-terra

  2. qiskit-aer

  3. qiskit-ibmq-provider (si deseas conectarte a los dispositivos IBM Quantum o al simulador en línea)

Para trabajar con varios componentes y elementos simultáneamente, utiliza los siguientes pasos para cada elemento.

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:

https://rustup.rs/

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.

  1. Clona el repositorio de Terra.

    git clone https://github.com/Qiskit/qiskit-terra.git
    
  2. La clonación del repositorio crea una carpeta local llamada qiskit-terra.

    cd qiskit-terra
    
  3. Si quieres ejecutar pruebas o verificaciones de linting, instala los requerimientos de desarrollador.

    pip install -r requirements-dev.txt
    
  4. 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

Nota

Si no tienes la intención de instalar ningún otro componente, qiskit-terra emitirá una advertencia RuntimeWarning debido a que tanto qiskit-aer como qiskit-ibmq-provider no están instalados. Esto se hace porque los usuarios normalmente tienen la intención de utilizar los elementos adicionales, pero no se dan cuenta de que no están instalados o de que la instalación de Aer o IBM Quantum Provider falló por algún motivo. Si deseas suprimir estas advertencias, agrega:

import warnings
warnings.filterwarnings('ignore', category=RuntimeWarning,
                        module='qiskit')

antes de cualquier importación de paquetes qiskit en tu código. Esto suprimirá la advertencia sobre los componentes qiskit-aer y qiskit-ibmq-provider faltantes, pero continuará mostrando cualquier otra advertencia de qiskit u otros paquetes.

Installing Aer from Source

  1. 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
  1. 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
    
  2. 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
  1. 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
    
  2. 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
  1. 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.

  1. 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
    

    Si necesitas configurar una opción personalizada durante la construcción de la Python wheel, consulta aer_wheel_build_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.

Installing IBM Quantum Provider from Source

  1. Clona el repositorio qiskit-ibmq-provider.

    git clone https://github.com/Qiskit/qiskit-ibmq-provider.git
    
  2. La clonación del repositorio crea un directorio local llamado qiskit-ibmq-provider.

    cd qiskit-ibmq-provider
    
  3. Si quieres ejecutar pruebas o verificaciones de linting, instala los requerimientos de desarrollador. Esto no es requerido para instalar o usar el paquete qiskit-ibmq-provider cuando se instala a partir del código fuente.

    pip install -r requirements-dev.txt
    
  4. Instala qiskit-ibmq-provider.

    pip install .
    

Si deseas instalarlo en modo editable, es decir, que los cambios en el código del proyecto no requieran una reinstalación para ser aplicados:

pip install -e .

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 Qiskit

Dive into the tutorials

Find out how to leverage Qiskit for everything from single-circuits to full quantum application development.

Qiskit tutorials