如何修复`AttributeError:模块'apache_beam.coders.coders'没有属性'VarIntCoder'`

时间:2019-05-20 16:04:29

标签: python apache-beam

我正在构建Apache Beam管道,但是在尝试导入管道选项时遇到了AttributeError。

我正在使用python3.6在干净的虚拟环境中的Ubuntu服务器上进行测试

步骤:

virtualenv -p python3.6 beam-env
. beam-env/bin/activate
pip install apache_beam==2.12.0
python3.6 test.py

内部test.py:

from apache_beam.options.pipeline_options import PipelineOptions

我希望导入能够成功进行,但是出现以下错误:

AttributeError:模块'apache_beam.coders.coders'没有属性'VarIntCoder'

4 个答案:

答案 0 :(得分:1)

当我用apache-beam编写自己的数据管道时,我发现了一种非常奇怪的行为:一旦在名为test.py的文件中有了管道,就可以得到这种行为。

假设您在main.py中拥有当前的实现,则只需要将整个代码复制到test.py文件中,然后它将在两个文件上均产生错误。

我现在要解决此问题的唯一方法是删除该test.py或将其重命名为其他名称,然后问题就消失了。

答案 1 :(得分:0)

更新:

实际上,错误是由于python3引起的。切换到python2.7,错误消失了。 Beam完全过渡到python3,预计很快就会100%完成。 [我不确定100%的预计到达时间,也许是在用户组中仔细检查了确切的时间轴]

原件: 在您的virtualenv中也要执行以下操作:

pip install -e .[gcp,test]

,也许也可以在apache_beam文件夹下进行此操作:

python setup.py sdist

然后重试。

即使使用了virtualenv,安装环境也可能很棘手。我有时发现此页面中的提示有用:https://cwiki.apache.org/confluence/display/BEAM/Python+Tips

希望有帮助。

答案 2 :(得分:0)

为了解决此错误,您可以打开一个新项目。然后,重新安装apace-beam。

答案 3 :(得分:0)

对于那些使用Google Colab的人,我遇到了相同的错误,并通过重新启动运行时并再次运行整个笔记本解决了该问题。

enter image description here

我的进口货是

!{'pip install apache-beam[gcp]'}
!{'pip install apache-beam[interactive]'}
!{('pip install google-apitools')}