Я развертываю функцию Google Cloud, которая запускает другие функции Google Cloud с помощью google.cloud.pubsub_v1
, и я получаю эту ошибку ImportError: cannot import name 'pubsub' from 'google.cloud' (unknown location)
Начало моего файла needs.txt выглядит следующим образом
# Function dependencies, for example:
# package>=version
google-cloud-pubsub
....
Начало моего сценария main.py выглядит следующим образом:
import base64
import json
from google.cloud import pubsub_v1
publisher = pubsub_v1.PublisherClient()
topic_path = publisher.topic_path(<PROJECT_ID>, <PUBSUB_TOPIC>)
Я внедряю этот код из репозитория исходного кода Google Cloud.Я прочитал этот пост о моей ошибке, но этот вопрос, похоже, касается этой ошибки, возникающей в клиентском приложении.Моя ошибка генерируется самой функцией Google Cloud в процессе развертывания.У меня нет прав sudo
на автоматически созданную виртуальную машину, которую Google использует для запуска моего процесса, не так ли?Я должен быть в состоянии решить эту проблему из файла requirements.txt
, но ничего, что я пробовал, похоже, не работает.
Еще более неприятно то, что когда я помещаю этот же код в «встроенный редактор» в веб-редакторе функций Google, я не получаю сообщение об ошибке.Я получаю эту ошибку только при загрузке кода из хранилища.
Текущая файловая структура в хранилище выглядит примерно так:
.
├── package
| ├── main.py
| ├── script1.py
| └── script2.py
├── package2
├── ...
└── requirements.txt
Я переместил main.py внутри пакета из-за проблем, с которыми я столкнулся в этого SO-вопроса
Есть идеи, как решить эту ошибку импорта?