【发布时间】:2020-01-27 11:36:42
【问题描述】:
我在 Python 2.7 上使用 Apache Beam 创建了一个在 Google Dataflow 上运行的管道。当我从笔记本电脑本地部署此管道时,它运行良好。我现在希望通过 CloudBuild 部署它。这是我的 cloudbuild.yaml 文件:
steps:
- name: "docker.io/library/python:2.7"
args: ["pip", "install", "-t", "/workspace/lib", "-r", "requirements.txt"]
- name: "docker.io/library/python:2.7"
args: ["python2", "tests.py"]
env: ["PYTHONPATH=/workspace/lib"]
触发 CloudBuild 时,它成功安装了所有要求,但是当它尝试在 tests.py 文件中导入 apache_beam 时,我收到以下错误:
File "tests.py", line 3, in <module>
import apache_beam as beam
File "/workspace/lib/apache_beam/__init__.py", line 97, in <module>
from apache_beam import coders
File "/workspace/lib/apache_beam/coders/__init__.py", line 19, in <module>
from apache_beam.coders.coders import *
File "/workspace/lib/apache_beam/coders/coders.py", line 29, in <module>
import google.protobuf.wrappers_pb2
ImportError: No module named google.protobuf.wrappers_pb2
在 requirements.txt 文件中,我有除其他外以下内容:
apache-beam==2.16.0
protobuf==3.11.0
注意:requirements.txt 中列出了所有必要的要求,因为我可以在本地部署管道。
【问题讨论】:
-
嗨,你检查我的回答了吗?你还有同样的问题吗?
-
嗨@Juancki,感谢您的回答。它确实解决了我的问题
-
感谢您抽出时间查看该主题!编码愉快!
标签: python-2.7 apache-beam google-cloud-build