Невозможно импортировать имя «ConfigDict» из «pydantic».Python

Программы на Python
Anonymous
Невозможно импортировать имя «ConfigDict» из «pydantic».

Сообщение Anonymous »

В настоящее время я изучаю некоторые из последних обновлений в области квантовых вычислений и решил запустить фрагмент кода из руководства IBM, чтобы лучше понять новые функции. Однако я столкнулся с технической проблемой и надеюсь, что кто-нибудь здесь сможет пролить на нее свет. Несмотря на поиск в Интернете, я не смог найти ничего, связанного с этой проблемой.
Вот сообщение об ошибке, которое я получил:

Код: Выделить всё

--------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
/home/jovyan/m_class.ipynb Cell 3 line 1
----> 1 from qiskit_ibm_runtime import QiskitRuntimeService, Session
2 from qiskit_ibm_runtime import SamplerV2 as Sampler
3 from qiskit_ibm_runtime import EstimatorV2 as Estimator

File ~/.local/lib/python3.10/site-packages/qiskit_ibm_runtime/__init__.py:219
216 from .utils.utils import setup_logger
217 from .version import __version__
--> 219 from .estimator import (  # pylint: disable=reimported
220     EstimatorV2,
221     EstimatorV1,
222     EstimatorV1 as Estimator,
223 )
224 from .sampler import (  # pylint: disable=reimported
225     SamplerV2,
226     SamplerV1,
227     SamplerV1 as Sampler,
228 )
229 from .options import Options, EstimatorOptions, SamplerOptions

File ~/.local/lib/python3.10/site-packages/qiskit_ibm_runtime/estimator.py:30
28 from .runtime_job_v2 import RuntimeJobV2
29 from .ibm_backend import IBMBackend
---> 30 from .options import Options
31 from .options.estimator_options import EstimatorOptions
32 from .base_primitive import BasePrimitiveV1, BasePrimitiveV2

File ~/.local/lib/python3.10/site-packages/qiskit_ibm_runtime/options/__init__.py:98
1 # This code is part of Qiskit.
2 #
3 # (C) Copyright IBM 2022, 2024
(...)
10 # copyright notice, and modified files need to carry a notice indicating
11 # that they have been altered from the originals.
13 """
14 =====================================================
15 Primitive options (:mod:`qiskit_ibm_runtime.options`)
(...)
95
96 """
---> 98 from .environment_options import EnvironmentOptions
99 from .execution_options import ExecutionOptions
100 from .execution_options import ExecutionOptionsV2

File ~/.local/lib/python3.10/site-packages/qiskit_ibm_runtime/options/environment_options.py:17
13 """Options related to the execution environment."""
15 from typing import Optional, Callable, List, Literal
---> 17 from .utils import primitive_dataclass
19 LogLevelType = Literal[
20     "DEBUG",
21     "INFO",
(...)
24     "CRITICAL",
25 ]
28 @primitive_dataclass
29 class EnvironmentOptions:

File ~/.local/lib/python3.10/site-packages/qiskit_ibm_runtime/options/utils.py:23
20 from dataclasses import is_dataclass, asdict
21 from numbers import Real
--->  23 from pydantic import ConfigDict, ValidationInfo, field_validator
24 from pydantic.dataclasses import dataclass
26 from qiskit.providers.backend import Backend

ImportError: cannot import name 'ConfigDict' from 'pydantic' (/home/jovyan/.local/lib/python3.10/site-packages/pydantic/__init__.py)
из следующего кода:

Код: Выделить всё

from qiskit_ibm_runtime import QiskitRuntimeService, Session
from qiskit_ibm_runtime import SamplerV2 as Sampler
from qiskit_ibm_runtime import EstimatorV2 as Estimator
from qiskit.circuit.library import RealAmplitudes
from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit.quantum_info import SparsePauliOp
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager

# Initialize account.
service = QiskitRuntimeService()

# Prepare inputs.
psi = RealAmplitudes(num_qubits=2, reps=2)
H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)])
theta = [0, 1, 1, 2, 3, 5]
# Bell Circuit
qr = QuantumRegister(2, name="qr")
cr = ClassicalRegister(2, name="cr")
qc = QuantumCircuit(qr, cr, name="bell")
qc.h(qr[0])
qc.cx(qr[0], qr[1])
qc.measure(qr, cr)

backend = service.least_busy(operational=True, simulator=False)
pm = generate_preset_pass_manager(target=backend.target, optimization_level=1)

bell_isa_circuit = pm.run(qc)
psi_isa_circuit = pm.run(psi)
isa_observables = H1.apply_layout(psi_isa_circuit.layout)

with Session(service=service, backend=backend) as session:
# Submit a request to the Sampler primitive within the session.
sampler = Sampler(session=session)
job = sampler.run([bell_isa_circuit])
pub_result = job.result()[0]
print(f"Counts: {pub_result.data.cr.get_counts()}")

# Submit a request to the Estimator primitive within the session.
estimator = Estimator(session=session)
estimator.options.resilience_level = 1  # Set options.
job = estimator.run(
[(psi_isa_circuit, isa_observables, theta)]
)
pub_result = job.result()[0]
print(f"Expectation values: {pub_result.data.evs}")

Кто-нибудь еще сталкивался с этим или кто-нибудь знает, что может быть причиной этой проблемы?

Подробнее здесь: https://stackoverflow.com/questions/784 ... m-pydantic

Вернуться в «Python»