谷歌数据流python快速启动错误GcsIO没有属性

2024-10-02 22:34:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在跟踪Dataflow Python Quickstart,在运行wordcount示例管道时遇到一个错误:

... File "apache_beam/io/fileio.py", line 281, in glob return gcsio.GcsIO().glob(path, limit) AttributeError: 'NoneType' object has no attribute 'GcsIO'

我试过用我自己的管道得到同样的结果。我不确定问题出在这里,因为我以为我完全遵循了教程,这个错误似乎与读/写转换有关

Traceback (most recent call last): File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 162, in _run_module_as_main "main", fname, loader, pkg_name) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/Users/Alex/beam/sdks/python/apache_beam/examples/wordcount.py", line 116, in run() File "/Users/Alex/beam/sdks/python/apache_beam/examples/wordcount.py", line 87, in run lines = p | 'read' >> ReadFromText(known_args.input) File "apache_beam/io/textio.py", line 378, in init skip_header_lines=skip_header_lines) File "apache_beam/io/textio.py", line 87, in init validate=validate) File "apache_beam/io/filebasedsource.py", line 97, in init self._validate() File "apache_beam/io/filebasedsource.py", line 171, in _validate if len(fileio.ChannelFactory.glob(self._pattern, limit=1)) <= 0: File "apache_beam/io/fileio.py", line 281, in glob return gcsio.GcsIO().glob(path, limit) AttributeError: 'NoneType' object has no attribute 'GcsIO'

你知道我做错什么了吗?在

谢谢


Tags: runinpyioapachelinevalidatewordcount
2条回答

仅仅安装google-apitools并不能解决我的问题。我不得不从源代码直接安装SDK,包括它的gcp依赖项,定义在SDKs egg info中的requires.txt

# run this in your virtualenv
SDK_PATH=sdks/python
pip install -e $SDK_PATH[gcp]

通过gcloud auth application-default login登录,我可以成功地运行wordcount示例。在

编辑:重新编写了答案,因为之前的解决方案无法按预期工作。在

发生这种情况是因为您没有安装google-apitools包(这在代码中提到过,但应该有更好的文档记录)。在

尝试在虚拟环境中运行pip install google-apitools,然后重新运行管道(请注意,您的系统中需要有Google云凭据)。在

相关问题 更多 >