Skip to main content
IBM Quantum Platform

Instala el nuevo paquete de Qiskit « v1.0 »

Qiskit v1.0 utiliza una estructura de paquetes diferente a la de las versiones anteriores de Qiskit, lo que probablemente causará problemas en entornos que utilicen paquetes que no estén preparados para Qiskit v1.0.

Caution

No intentes actualizar in situ un entorno virtual existente de Python a Qiskit v1.0.

En el futuro no realizaremos cambios radicales similares en el embalaje. Se trata de una acción puntual, con motivo del lanzamiento de Qiskit v1.0, con el objetivo específico de que, en el futuro, el proceso de empaquetado resulte lo más sencillo posible.

Esta guía se divide en las siguientes secciones. Sólo tiene que revisar las secciones que le interesen.

Si te interesa conocer la estructura anterior de los paquetes y por qué se modificó, consulta la descripción general de los cambios importantes en los paquetes.


Para los usuarios

Debes iniciar un nuevo entorno virtual para instalar Qiskit v1.0. Actualizar una instalación existente directamente a Qiskit v1.0 es un proceso muy complicado y propenso a errores.

Note

Los ejemplos de esta sección utilizan el módulo venv que forma parte de la biblioteca estándar Python. Si utiliza una herramienta diferente, como virtualenv o conda, consulte su documentación para obtener ayuda.

Para los comandos Linux y macOS, se utiliza una sintaxis similar a la de bash. PowerShell se utiliza para los comandos de Windows.

Crear el nuevo entorno

  1. Cree un nuevo entorno virtual en cada directorio de proyecto en el que esté trabajando, utilizando su versión preferida de Python 3.8 o posterior.

    python3 -m venv .venv
  1. Activar el entorno.

    source .venv/bin/activate
  2. Instale los paquetes que desee. Para ello, utilice un único comando pip install con todas las dependencias.

    pip install 'qiskit>=1'

    Puede incluir opcionalmente paquetes adicionales incluyéndolos como argumentos. Por ejemplo:

    pip install 'qiskit>=1' jupyterlab pandas matplotlib

    La versión v1.0 de Qiskit incluye cambios que afectan a la compatibilidad, por lo que varios paquetes se han marcado como aún no compatibles con ella. Por lo tanto, es posible que aparezcan errores hasta pip que se publiquen nuevas versiones de esos paquetes. Es posible que las versiones antiguas de los paquetes también dependan del paquete heredado qiskit-terra . import qiskitEs posible que estos paquetes no devuelvan ningún error al ejecutar este comando, pero que sí generen un error al ejecutarlo. No debes instalar ningún paquete que dependa directamente de qiskit-terra.

    Tip

    Una forma de requerir que pip prohíba qiskit-terra de comandos individuales install es utilizar un archivo de restricciones que requiera que qiskit-terra se establezca en una versión imposible. Por ejemplo, un archivo de restricciones que incluya la línea qiskit-terra>=1.0 significará que si una dependencia intenta instalar qiskit-terra, ninguna versión publicada cumplirá los requisitos.

    Hemos proporcionado un archivo de este tipo en un GitHub Gist en https://qisk.it/1-0-constraints que puede utilizar de la siguiente manera:

    pip install -c https://qisk.it/1-0-constraints qiskit [other packages]

    Si un paquete requiere qiskit-terra, verá un fallo de resolución.

    Caution

    No instales en este entorno virtual paquetes que sean incompatibles con Qiskit v1.0. Si necesitas utilizar estos paquetes, instálalos en un entorno virtual independiente con Qiskit 0.45 o 0.46.

    Si ya tienes un entorno configurado, puedes utilizar pipdeptree para consultar los requisitos de los paquetes instalados y comprobar si necesitan qiskit<1. qiskit<1Si necesitaslo, comprueba si hay actualizaciones que lo hagan compatible con Qiskit: v1.0.

    Si tienes algún problema, consulta la sección de solución de problemas o pregunta en Qiskit Slack. Si crees que hay un error, puedes crear una incidencia contra Qiskit.

  3. Si no piensa utilizar el entorno inmediatamente, utilice el comando deactivate para abandonarlo.

Utiliza el nuevo entorno

Cada vez que inicie una nueva sesión de línea de comandos, deberá navegar hasta el directorio de su proyecto y "activar" el entorno ejecutando el comando activate :

source .venv/bin/activate

Para desarrolladores

Si mantienes un paquete que depende de Qiskit, utiliza esta información para saber cómo indicar correctamente tu compatibilidad y realizar pruebas con Qiskit: v1.0.

Recomendaciones para los requisitos

Te recomendamos que tu paquete cumpla con los requisitos mínimos qiskit>=0.45,<1 (u otros requisitos mínimos adecuados) si no estás seguro de si el paquete es compatible con Qiskit v1.0. Esta es la misma recomendación que se hace para la compatibilidad de NumPy 2.0.

El 1 de febrero de 2024 se lanzará una versión candidata de Qiskit v1.0, la versión 1.0.0rc1. Deberías comprobar si tu paquete cumple con este requisito y, tan pronto como sea posible, publicar una nueva versión (compatible) del mismo en la que se haya eliminado el requisito de compatibilidad con versiones anteriores.

Recomendaciones para realizar pruebas con Qiskit v1.0

Estas recomendaciones se aplican a las pruebas que se realizan de forma proactiva con la rama «Qiskit» main , así como a las pruebas con la versión candidata de « v1.0.0rc1 » (y versiones posteriores, si procede).

No recomendamos proteger inicialmente la rama tras una integración exitosa con la rama de Qiskit main , ya que los cambios en Qiskit podrían impedirte fusionar las solicitudes de incorporación de cambios. Una vez publicadas las versiones candidatas de Qiskit, y una vez que todas las dependencias de tu paquete sean compatibles con Qiskit v1.0, te recomendamos que, si todo va bien, protejas la rama con respecto a la última versión candidata, para garantizar que el paquete siga siendo compatible con Qiskit v1.0.

Si ni su paquete, ni ninguna de sus dependencias transitivas, tiene un pin de requisito en qiskit<1, debe crear un entorno virtual de pruebas como lo haría normalmente, en un solo comando pip install , y especificar directamente qiskit==1.0.0rc1 o qiskit==git+https://github.com/Qiskit/qiskit.git@main según corresponda. Esta es la forma más fiable de asegurarse de que dispone de un entorno completamente válido.

Si el único componente del gráfico de dependencias de tu paquete que tiene un pin de qiskit<1 requisitos es tu propio paquete, quizá te interese que tu conjunto de pruebas de integración (CI) modifique temporalmente tu archivo de requisitos para permitir que Qiskit v1.0, y luego instale el entorno en un solo paso, como antes. Como alternativa, utilice las siguientes reglas para las actualizaciones de entornos de uso general, pero cambie a la resolución de un único entorno tan pronto como sea posible.

Si al menos una de tus dependencias transitivas aún no cuenta con una versión que admita el soporte para Qiskit v1.0, deberás realizar cambios manualmente. Hay varias estrategias que se pueden probar, ordenadas aproximadamente por orden de preferencia (de la más recomendable a la menos):

  • Instala la dependencia problemática desde su propia rama main , si su versión de desarrollo ha relajado el pin, para que puedas construir el entorno de pruebas en un solo paso.
  • Excluya el uso de esa dependencia del entorno de prueba, si es posible.
  • Crea un entorno de prueba como lo harías normalmente y, a continuación, modifícalo manualmente para utilizar Qiskit v1.0.

Actualizar manualmente un entorno existente

Caution

Este proceso crea deliberadamente un entorno no válido. Por lo tanto, cualquier prueba que lo utilice tiene menor validez. Puede parecer que las pruebas se superan, pero esto no garantiza que el paquete sea compatible con Qiskit v1.0. Esto podría deberse a que el entorno no es coherente y podría contener archivos que no existen en un entorno válido, o a que el comportamiento de un paquete sobrescrito podría cambiar con Qiskit v1.0.

Note

Si alguna de tus dependencias se fija qiskit<1 incluso en su rama de desarrollo, es posible que no funcione en absoluto con Qiskit v1.0, y si tus pruebas no se pueden ejecutar por este motivo, quizá tengas que esperar a que sean compatibles (o trabajar con ellas) para que lo sean.

Para actualizar un entorno in situ, siga estos pasos:

  1. Cree un entorno como de costumbre, asegurándose de que no hay paquetes que amplíen el espacio de nombres qiskit o qiskit.providers instalados.

  2. Desinstale tanto qiskit como qiskit-terra para asegurarse de que ninguno de los dos está presente:

pip uninstall --yes qiskit qiskit-terra

En este punto, el entorno site-packages no debería contener un directorio qiskit . No necesita verificar esto en cada ejecución CI, pero si está depurando un script localmente, siga estos pasos para verificarlo:

  1. Ejecute el siguiente comando desde python del entorno virtual:
import site
print(site.getsitepackages())
  1. Compruebe que esos directorios no contienen un directorio qiskit . Si es así, es probable que tenga instalados paquetes que amplían el espacio de nombres, y debería encontrarlos y eliminar la dependencia.

  2. Instala la versión deseada de Qiskit v1.0 con uno de estos comandos:

  • Una vez publicada la versión candidata deseada:
    pip install 'qiskit==1.0.0rc1'
  • Para una dependencia de main-branch (o sustituya el identificador de revisión git que prefiera después de @).
    pip install 'git+https://github.com/Qiskit/qiskit.git@main'

Ahora tienes un entorno en el que Qiskit te permite hacer pruebas. Si import qiskit da como resultado ImportError, o si tienes problemas para encontrar tus dependencias, consulta los consejos de la sección sobre las protecciones de entorno no válido en Qiskit.

Ejemplo de manual de flujos de trabajo de acciones de GitHub

Los siguientes flujos de trabajo configuran una tarea programada para que se ejecute durante la noche. Esta tarea configura un entorno de pruebas para Qiskit v1.0 y ejecuta pytest (o cualquier otro paso de prueba que necesites).

Para un paquete que no tiene dependencias transitivas qiskit<1:

on:
  schedule:
    - cron: '0 3 * * *'
jobs:
  test_main:
    name: Test Qiskit main
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.10'
      - name: Create environment
        run: |
          set -e
          # First ensure the standard tools are up-to-date.
          python -m pip install --upgrade pip wheel setuptools
          # Note that this resolves everything in a single command.
          # If it fails, at least one package likely requires `qiskit<1`.
          python -m pip install --upgrade \
            -c constraints.txt \
            -r requirements-dev.txt \
            . \
            'git+https://github.com/Qiskit/qiskit.git@main'
      - name: Run tests
        run: pytest

Para un paquete que tiene dependencias transitivas inevitables que fijan qiskit<1, construya un entorno inválido:

on:
  schedule:
    - cron: '0 3 * * *'
jobs:
  test_main:
    name: Test Qiskit main
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.10'
      - name: Create environment
        run: |
          set -e
          python -m pip install --upgrade pip wheel setuptools
          # Install the regular test environment.
          python -m pip install --upgrade \
            -c constraints.txt \
            -r requirements-dev.txt \
            .
          # Uninstall `qiskit` and `qiskit-terra`.
          python -m pip uninstall --yes qiskit qiskit-terra
          # Install the new version of Qiskit
          python -m pip install 'git+https://github.com/Qiskit/qiskit.git@main'
      - name: Run tests
        run: pytest

Configuración tox de ejemplo

A continuación se muestran ejemplos de tox.ini secciones para crear un entorno de pruebas para Qiskit v1.0 y ejecutar pytest (o cualquier otro paso de prueba que necesites).

Si no hay ningún impedimento para instalar Qiskit v1.0 en un entorno válido:

[tox]
minversion = 4.0.0

# This environment section should set up your regular test build.
# We'll extend it after, and this one is just an example.
[testenv]
install_command = pip install -c {toxinidir}/constraints.txt -U {opts} {packages}
deps =
    -r{toxinidir}/requirements-dev.txt
commands =
    pytest

# This is an override environment to install Qiskit main.
# We're assuming that you have a requirement like `qiskit>=0.45`
# in your packages metadata requirements.
[testenv:qiskit-main]
# Inherit the base dependencies, and add the additional requirement.
deps =
  [{testenv}deps]
  git+https://github.com/Qiskit/qiskit@main
# All other options, like the `commands` section, are inherited from `testenv`.

Si su paquete o una dependencia transitiva tiene un pin inevitable en qiskit<1, recomendamos hacer esta prueba usando la construcción manual del entorno como en la sección anterior, porque tox introduce varias complejidades al ser más estricto sobre el aislamiento del entorno y el orden de instalación. Este es un comportamiento correcto en tox (no deberíamos construir un entorno no válido), pero como ya sabemos que estamos construyendo un entorno no válido, estas comprobaciones nos estorban.

[tox]
minversion = 4.0.0

# This environment section should set up your regular test build.
# We'll extend it later.  This is just an example.
[testenv]
install_command = pip install -c {toxinidir}/constraints.txt -U {opts} {packages}
deps =
    -r{toxinidir}/requirements-dev.txt
commands =
    pytest

[testenv:qiskit-main]
# Set a sequence of commands to run in the environment 
# after everything has been installed,
# but before the main test suite.
commands_pre =
  pip uninstall --yes qiskit qiskit-terra
  pip install 'git+https://github.com/Qiskit/qiskit@main'
# All other sections, like the dependencies and the 'commands' section 
# are inherited.

Resolución de problemas

Los cambios en el empaquetado de Qiskit v1.0 son complicados, y la herramienta pip estándar de Python no es lo suficientemente completa en algunos aspectos como para que podamos comunicarle los cambios en las estructuras de distribución, lo que, lamentablemente, podría causar problemas a los usuarios. Hemos intentado que Qiskit falle de forma rápida y evidente si detecta un entorno no válido, sin falsos positivos. Entendemos que a los usuarios les pueda resultar molesto recibir el mensaje de error, pero, según nuestra experiencia, es mucho mejor detectar el problema de inmediato que dejar que todo parezca funcionar a simple vista, para luego fallar de forma imperceptible en el futuro.

Esta sección contiene errores de empaquetado que puede ver y describe cómo resolverlos.

La mayoría de estos problemas no son exclusivos de Qiskit, por lo que el consejo es probablemente relevante, incluso si las partes problemáticas no están relacionadas con Qiskit.

import qiskit "ModuleNotFoundError: No module named 'qiskit'»

Python no puede encontrar su instalación de Qiskit.

Si definitivamente instalaste Qiskit, entonces es probable que no tengas activado el entorno virtual correcto. Consulte la sección sobre la activación de un entorno virtual para obtener instrucciones.

Si estás utilizando Jupyter y ves esto, asegúrate de que Jupyter está instalado en el mismo entorno virtual que Qiskit. Salga de Jupyter, active el entorno virtual Qiskit en la línea de comandos, ejecute pip install jupyterlab (o la interfaz de cuaderno que utilice) y, a continuación, vuelva a abrir Jupyter.

import qiskit Tiene éxito, pero al intentar hacer cualquier cosa devuelve « "AttributeError: : el módulo 'qiskit' no tiene el atributo '...'»

Esto probablemente significa que tu entorno tenía una versión antigua de Qiskit junto con un paquete que extendía su espacio de nombres (como versiones antiguas de Qiskit Aer, o el ya obsoleto Qiskit IBM Q® Provider), y luego Qiskit fue desinstalado. Lo más sencillo es iniciar un nuevo entorno virtual y sólo instalar en él paquetes recientes y no obsoletos.

Si acabas de iniciar un nuevo entorno virtual, o estás seguro de que los paquetes heredados no son el problema, asegúrate de que tu directorio de trabajo actual (el directorio en el que estaba tu sesión de shell cuando iniciaste Python / Jupyter) no contiene una carpeta llamada qiskit. Python buscan en el directorio de trabajo actual muy al principio de la ruta de búsqueda cuando se trata de import un módulo, por lo que un directorio con un nombre duplicado puede causar problemas de importación.

pip Se niega a instalar algunos paquetes juntos

Después de ejecutar un comando pip install con muchos elementos en él, es posible que aparezca un error como el siguiente:

ERROR: Cannot install qiskit-dynamics==0.4.4 and qiskit==1.0.0 because these package versions have conflicting dependencies.

The conflict is caused by:
    The user requested qiskit==1.0.0
    qiskit-dynamics 0.4.4 depends on qiskit<1.0

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

Esto describe un verdadero conflicto de resolución; no hay forma válida de instalar todas estas distribuciones al mismo tiempo.

En el contexto de Qiskit v1.0, es probable que esto se deba a que una de las distribuciones que estás intentando instalar contiene un requisito como qiskit<1.0. Esto significa que los desarrolladores de esa distribución la han marcado como (todavía) no compatible con Qiskit v1.0.

Puedes preguntar (educadamente) a esos desarrolladores cuándo lanzarán una nueva versión de su paquete que sea compatible con Qiskit v1.0, pero comprueba primero que no haya ninguna incidencia abierta o solicitud de incorporación de cambios en la que ya se haya solicitado esto en cualquier lugar donde acepten comentarios. Ten en cuenta que esto lleva tiempo; ¡por favor, da a los desarrolladores más o menos un mes para preparar las nuevas versiones de sus distribuciones! Hasta entonces, no podrás instalar esa distribución junto con Qiskit v1.0. Para seguir utilizando esa distribución, crea un nuevo entorno virtual y utiliza Qiskit 0.45 o 0.46 (o cualquier otra versión compatible) junto con ese otro paquete.

Caution

Si obtiene este error, no intente construir el entorno llamando varias veces a pip install . Esos comandos probablemente no fallarán, pero habrás creado un entorno no válido. Es probable que aparezcan algunos de los mensajes de error descritos en esta sección.

También puede leer la documentación de la autoridad de envasado Python sobre la resolución de conflictos.

pip Funciona, pero muestra errores después de ejecutar pip install los comandos

Es posible que vea un error en la salida de pip, como el siguiente:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behavior is the source of the following dependency conflicts.
some-distribution 0.4.4 requires qiskit>=0.44,<1, but you have qiskit v1.0.0 which is incompatible.

La línea superior suele aparecer textualmente (en pip 23.3 ), pero la segunda línea cambia en función del problema exacto, y puede haber varias líneas iguales. pip es probable que indique entonces que hizo lo que usted quería con éxito, a pesar del mensaje de error.

Esto significa que el entorno está en conflicto y no puedes estar seguro de que funcione correctamente. Para resolver el problema, examine la lista de mensajes de pip y determine si necesita todos los paquetes que tienen requisitos contradictorios. A veces habrá verdaderos conflictos entre dependencias; es posible que necesite varios entornos virtuales para separar las dependencias que tienen requisitos incompatibles.

La opción más segura es iniciar un nuevo entorno virtual (o más de uno, si hay verdaderos conflictos), y luego borrar el que está en conflicto.

Cuando configure entornos virtuales, ejecute sólo un comando pip install que incluya todas las dependencias que necesite. Esta es la forma más fiable de que pip encuentre un entorno correctamente resuelto y sin conflictos. Si sigue teniendo problemas con conflictos después de configurar entornos, evite ejecutar más comandos pip install o pip uninstall ; pip no garantiza mantener la coherencia del entorno en comandos posteriores.

Note

Si le preocupa trabajar con varios entornos virtuales, tenga por seguro que el desarrollo y el uso de Python suelen implicar varios entornos virtuales. Es habitual y una buena práctica crear otras nuevas para trabajar en proyectos separados. Cuando hayas terminado con un entorno virtual, puedes simplemente borrar su directorio; no hay razón para mantener varios entornos de forma permanente.

import qiskit aumentos ImportError

Al ejecutar import qiskit, es posible que aparezca un error como el siguiente:

ImportError: Qiskit está instalado en un entorno no válido que tiene tanto Qiskit 1.0 + y una versión anterior. Deberías crear un nuevo entorno virtual y asegurarte de no mezclar dependencias entre Qiskit pre-1.0 y post-1.0. Cualquier paquete que dependa de 'qiskit-terra' no es compatible con Qiskit 1.0 y tendrá que ser actualizado. Lamentablemente, Qiskit no puede hacer cumplir este requisito durante la resolución del entorno.

Tip

Es posible que hayas ejecutado un comando pip install completamente válido, siguiendo todas las recomendaciones de esta guía, y aún así veas este mensaje de error. Esto no es culpa suya, pero el mensaje de error sigue siendo correcto, y Qiskit no puede cargarse con seguridad.

El error indica que Qiskit está instalado en un entorno no válido que contiene tanto Qiskit v1.0 como una versión anterior. Esto se caracteriza por el hecho de que qiskit-terra la distribución se instala junto con Qiskit v1.0. Puedes comprobar qué distribuciones están instaladas ejecutando pip list, pero no puedes solucionar esto simplemente desinstalando qiskit-terra.

Lamentablemente, qiskit>=1.0 y qiskit-terra son distribuciones conflictivas y no pueden instalarse juntas. Y lo que es aún más lamentable, no podemos comunicar este conflicto a pip debido a las limitaciones de su sistema de metadatos.

Este error se produce con mayor frecuencia en una de estas dos situaciones:

  • Has ejecutado algo como pip install 'qiskit>=1' something-else, y something-else tiene un requisito en qiskit-terra.
  • Ha intentado ejecutar pip install -U qiskit en un entorno existente.

En ambos casos, no hay garantía de que pip le devuelva un mensaje útil.

Tip

Una forma de requerir que pip prohíba qiskit-terra de comandos individuales install es utilizar un archivo de restricciones que requiera que qiskit-terra se establezca en una versión imposible. Por ejemplo, un archivo de restricciones que incluya la línea qiskit-terra>=1.0 significará que si una dependencia intenta instalar qiskit-terra, ninguna versión publicada cumplirá los requisitos.

Hemos proporcionado un archivo de este tipo en un GitHub Gist en https://qisk.it/1-0-constraints que puede utilizar de la siguiente manera:

pip install -c https://qisk.it/1-0-constraints qiskit [other packages]

Si un paquete requiere qiskit-terra, verá un fallo de resolución.

Configurar un entorno de trabajo para Qiskit v1.0

Independientemente de cómo haya ocurrido, es mucho más fácil crear un nuevo entorno virtual.

En primer lugar, debemos averiguar qué paquetes introducen una dependencia de qiskit-terra. Utilizando el entorno roto, instale pipdeptree desde PyPI. Se trata de una herramienta para generar gráficos de dependencia:

pip install pipdeptree

Pregúntele qué paquetes introducen dependencias en qiskit-terra y qiskit (son dos órdenes distintas):

pipdeptree --reverse --package qiskit-terra
pipdeptree --reverse --package qiskit

Los resultados podrían ser algo así:

qiskit-terra==0.45.2
└── qiskit-dynamics==0.4.2 [requires: qiskit-terra>=0.23.0]
qiskit==1.0.0
├── qiskit-aer==0.13.2 [requires: qiskit>=0.45.0]
└── qiskit-ibm-provider==0.8.0 [requires: qiskit>=0.45.0]

En el ejemplo anterior, tenemos dos distribuciones que se han declarado compatibles con Qiskit v1.0 (qiskit-aer y qiskit-ibm-provider), y una que sigue dependiendo de qiskit-terra.

Tip

Este ejemplo es una estructura de dependencia plana. Podrías ver un árbol mucho más profundo que este. Lo más probable es que los paquetes que dependen directamente de qiskit-terra (indentación más baja) sean los problemáticos, pero uno más abajo en el árbol podría ser problemático si depende de una versión específica antigua de algún otro paquete que ya ha sido actualizado.

Ver una dependencia en qiskit-terra puede significar una de varias cosas:

  • El paquete «dependent» es antiguo y no se actualizará para ser compatible con Qiskit v1.0.

    En este caso, no es posible utilizar el paquete con Qiskit v1.0, por lo que tendrás que seguir utilizando una versión anterior de Qiskit. Por lo general, esto se caracteriza por el hecho de que la dependencia se encuentra en su última versión (suponiendo que el entorno sea nuevo y que no se haya fijado una versión anterior) y que tenga un requisito directo sobre qiskit-terra.

  • La dependencia es un paquete que se mantiene activamente, pero que aún no es compatible con Qiskit v1.0.

    En este caso, tendrás que esperar a que los desarrolladores publiquen una versión compatible Típicamente esto se caracteriza porque la distribución instalada no está en su última versión, aunque su comando de instalación no especificó una versión. Puede consultar la última versión de la distribución en su página en https://pypi.org/.

    pip probablemente buscó en versiones antiguas del paquete hasta que encontró una (posiblemente de hace meses o años) que dependía únicamente de qiskit-terra.

    Esto es lo que ha ocurrido en el ejemplo anterior. En el momento de crear este documento, qiskit-dynamics==0.4.4 era la última versión.

Si has creado este entorno a partir de varios pip install comandos (por ejemplo, si el entorno es antiguo y se ha actualizado), intenta primero instalar todos los paquetes mediante un único pip install comando al crear un nuevo entorno. qiskit-terra Si el problema persiste, es probable que al menos uno de los paquetes que deseas instalar aún no sea compatible con Qiskit v1.0, y pip el sistema está buscando una versión antigua que cree que funcionará porque desconoce el qiskit>=1 conflicto.

En su lugar, utiliza los pipdeptree comandos para identificar qué dependencias aún no son compatibles con Qiskit v1.0. Al configurar un entorno Qiskit v1.0, excluya cualquier paquete que aún no sea compatible con Qiskit v1.0, o continúe utilizando una versión anterior de Qiskit. Consulte «Crear el nuevo entorno» para obtener instrucciones.

Note

El ejemplo de esta sección se creó antes de que se lanzara Qiskit v1.0.

La «antigua» distribución en cuestión (qiskit-dynamics) funcionaba correctamente; como aún no se sabía si era compatible con Qiskit v1.0, así lo indicaba en sus requisitos. No es posible aplicar cambios en los requisitos con carácter retroactivo a versiones ya publicadas, y pip el sistema buscará en el pasado hasta donde sea necesario para encontrar algo que funcione al configurar un entorno.

Crea un entorno de trabajo para Qiskit 0.45 o 0.46

Si tu entorno ha dejado de funcionar correctamente tras intentar instalar Qiskit 0.45 o 0.46, lo más probable es que pip se haya instalado Qiskit v1.0, ya que el sistema intentó seleccionar las últimas versiones de los paquetes, aunque no fuera necesario. La forma más sencilla de solucionar esto es crear un nuevo entorno virtual y, a continuación, ejecutar un único pip install comando que contenga todos los paquetes necesarios, además de una entrada explícita 'qiskit<1' . Si pip se resuelve correctamente este gráfico de dependencias, deberías tener un entorno virtual operativo. Si al menos una distribución requiere Qiskit v1.0 o una versión superior, pip debería aparecer un mensaje de error explicando esto, similar al que se muestra en la sección sobre resoluciones fallidas.

También puede utilizar los comandos pipdeptree enumerados en Crear un entorno de trabajo para Qiskit 1.0 desde el entorno roto para determinar qué distribuciones tienen un requisito explícito en qiskit>=1.

Soy desarrollador, mis entornos son correctos sin lugar a dudas y sigo obteniendo el error

En primer lugar: debes estar completamente seguro de que tus entornos son los correctos. La prueba que utiliza Qiskit para detectar un entorno defectuoso es bastante fiable; concretamente, solicita importlib.metadata información sobre la distribución de los paquetes instalados y comprueba los números de versión que se devuelven. La parte de la prueba relacionada con Qiskit v1.0 también comprueba si hay archivos centinela que estuvieran presentes en versiones antiguas de Qiskit, pero no en Qiskit v1.0.

Si eres un desarrollador de Qiskit, es posible que tengas viejos directorios qiskit.egg-info o qiskit-terra.egg-info (o *.dist-info) presentes en tu meta ruta (ver sys.meta_path), sobrantes de antiguas instalaciones editables. En particular, compruebe si en su directorio de trabajo hay directorios *.egg-info y *.dist-info . Si están en la raíz de uno de sus repositorios comprobados, puede eliminarlos. Lo peor que puede pasar es que necesites pip install -e . de nuevo, e incluso eso es poco probable, porque normalmente son sólo parte del proceso de construcción de setuptools que no se limpia.

Si la información anterior no te ayuda y estás 100% seguro de que tu entorno es sólido (o estás intentando probar deliberadamente un entorno roto):

  1. Crea una incidencia en Qiskit explicando cómo ha ocurrido y por qué estás seguro de que el entorno es correcto para que podamos solucionarlo.
  2. Puede suprimir la excepción configurando la variable de entorno QISKIT_SUPPRESS_1_0_IMPORT_ERROR=1.
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.