我正在部署一个Google Cloud函数,它将使用google.cloud.pubsub_v1
来启动其他Google Cloud函数,但我遇到了这个错误:ImportError: cannot import name 'pubsub' from 'google.cloud' (unknown location)
我的requirements.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 Source Repository部署此代码。我阅读了关于我的错误的这篇SO文章,但该问题似乎是关于客户端应用程序中出现的错误。我的错误是在Google Cloud函数本身在部署过程中生成的。我没有
sudo
权限来访问由Google用于运行我的进程的自动创建VM,对吗?我应该能够通过requirements.txt
文件解决此问题,但我尝试的所有方法都不起作用。更令人沮丧的是,当我将相同的代码放入基于Web的Google Function编辑器上的“内联编辑器”中时,我不会得到错误。只有在从存储库加载代码时才会出现此错误。
存储库中的当前文件结构如下:
.
├── package
| ├── main.py
| ├── script1.py
| └── script2.py
├── package2
├── ...
└── requirements.txt
因为我遇到了这个SO问题,所以我将main.py移动到一个包内。
你有什么解决导入错误的想法吗?
requirements.txt
文件中是否包含google-cloud
包,我都会收到相同的错误。 - Jedrequirements.txt
文件需要与main.py
在同一个目录中。我把我的文件移动到了package
目录中。你能否更新你的答案,包括这个信息,我会将其标记为解决方案? - Jed