«Ошибка типа: не удалось построить файл прототипа в пул дескрипторов» с помощью google-cloud-computePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 «Ошибка типа: не удалось построить файл прототипа в пул дескрипторов» с помощью google-cloud-compute

Сообщение Anonymous »

Я запускаю приложение Python в Ubuntu 22 с Python 3.13.0.
После обновления Python с версии 3.12 я получаю следующую ошибку при запуске приложения:

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

TypeError: Couldn't build proto file into descriptor pool: duplicate symbol 'google.cloud.compute.v1.AccessConfig.__firstlineno__'
Приложение имеет открытый исходный код и находится здесь: https://github.com/VerinFast/verinfast
Соответствующие элементы из файла require.txt:

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

google-cloud-compute>=1.14.0
protobuf нет в файле require.txt, но он должен быть установлен другим пакетом.
Ошибка вызвана импорт google-cloud-compute:

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

from google.cloud import compute_v1
Поэтому я создал однострочный файл под названием test.py со следующим:

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

from google.cloud import compute_v1
А если я запущу его с помощью:

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

python test.py
Я получаю такую ​​же длинную ошибку:

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

/usr/lib/python3/dist-packages/requests/__init__.py:87: RequestsDependencyWarning: urllib3 (2.2.3) or chardet (5.2.0) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
Traceback (most recent call last):
File "/home/stconrad/proto_error/test.py", line 1, in 
from google.cloud import compute_v1
File "/home/stconrad/.local/lib/python3.13/site-packages/google/cloud/compute_v1/__init__.py", line 21, in 
from .services.accelerator_types import AcceleratorTypesClient
File "/home/stconrad/.local/lib/python3.13/site-packages/google/cloud/compute_v1/services/accelerator_types/__init__.py", line 16, in 
from .client import AcceleratorTypesClient
File "/home/stconrad/.local/lib/python3.13/site-packages/google/cloud/compute_v1/services/accelerator_types/client.py", line 51, in 
from google.cloud.compute_v1.services.accelerator_types import pagers
File "/home/stconrad/.local/lib/python3.13/site-packages/google/cloud/compute_v1/services/accelerator_types/pagers.py", line 41, in 
from google.cloud.compute_v1.types import compute
File "/home/stconrad/.local/lib/python3.13/site-packages/google/cloud/compute_v1/types/__init__.py", line 16, in 
from .compute import (
......
)
File "/home/stconrad/.local/lib/python3.13/site-packages/google/cloud/compute_v1/types/compute.py", line 111135, in 
class ZoneSetPolicyRequest(proto.Message):
......
)
File "/home/stconrad/.local/lib/python3.13/site-packages/proto/message.py", line 279, in __new__
file_info.generate_file_pb(new_class=cls, fallback_salt=full_name)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/stconrad/.local/lib/python3.13/site-packages/proto/_file_info.py", line 104, in generate_file_pb
pool.Add(self.descriptor)
~~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: C
Из pip show protobuf:

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

Name: protobuf
Version: 5.28.2
Summary:
Home-page: https://developers.google.com/protocol-buffers/
Author: [email protected]
Author-email: [email protected]
License: 3-Clause BSD License
Location: /home/stconrad/.local/lib/python3.13/site-packages
Requires:
Required-by: google-api-core, google-cloud-compute, google-cloud-monitoring, googleapis-common-protos, grpcio-status, opentelemetry-proto, proto-plus
И pip show google-cloud-compute:

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

Name: google-cloud-compute
Version: 1.19.2
Summary: Google Cloud Compute API client library
Home-page: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-compute
Author: Google LLC
Author-email: [email protected]
License: Apache 2.0
Location: /home/stconrad/.local/lib/python3.13/site-packages
Requires: google-api-core, google-auth, proto-plus, protobuf
Required-by: verinfast
Похоже, что либо google-cloud-compute, либо protobuf не работают для Python 3.13, что прискорбно, поскольку он был выпущен 7 октября.
Ищу обходной путь.
Я попробовал обернуть импорт:

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

try:
from google.api_core.exceptions import NotFound
from google.cloud import compute_v1
from google.cloud.monitoring_v3 import Aggregation, MetricServiceClient, TimeInterval, ListTimeSeriesRequest  # noqa: E501
except:
print("Google Cloud libraries not imported.  Skipping GCP instances.")
compute_v1 = None
MetricServiceClient = None
Aggregation = None
TimeInterval = None
ListTimeSeriesRequest = None
Это устраняет ошибку, но тогда я не могу импортировать данные Google Cloud.

Подробнее здесь: https://stackoverflow.com/questions/791 ... e-cloud-co
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Разница между Google.Cloud.Compute.V1 и Google.Apis.Compute.v1
    Anonymous » » в форуме C#
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Ошибка «Не найдено полей карты в com.google.cloud.compute.v1.Instance» при получении экземпляров в Google Cloud API Java
    Anonymous » » в форуме JAVA
    0 Ответы
    80 Просмотры
    Последнее сообщение Anonymous
  • Как отправить запрос в Compute Engine с помощью клиентских библиотек Python Google Cloud?
    Гость » » в форуме Python
    0 Ответы
    45 Просмотры
    Последнее сообщение Гость
  • Соединение Docker Cloud Cloud Cloud Cloud
    Anonymous » » в форуме JAVA
    0 Ответы
    51 Просмотры
    Последнее сообщение Anonymous
  • Соединение Docker Cloud Cloud Cloud Cloud
    Anonymous » » в форуме JAVA
    0 Ответы
    60 Просмотры
    Последнее сообщение Anonymous

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