尝试导入 apache_beam
>>> import apache_beam
抛出致命错误
[libprotobuf ERROR google/protobuf/descriptor_database.cc:58] 数据库中文件已存在:
[libprotobuf FATAL google/protobuf/descriptor.cc:1370] 检查失败:
GeneratedDatabase()->Add(encoded_file_descriptor, size):
libc++abi.dylib:因未捕获的 google::protobuf::FatalException 类型异常而终止:
检查失败:GeneratedDatabase()->Add(encoded_file_descriptor, size):
我已经设法通过使用系统安装的 pythonvirtualenv
创建的程序来重现这个问题。pyenv
我从其他帖子得知,这是libprotobuf
加载两次的问题。不过,令我困扰的是,第一个错误没有报告数据库中存在哪个文件。
正在运行python -v
表明问题与有关pyarrow
,这是 apache_beam 在崩溃前导入的最后一个依赖项。我确实尝试在 apache_beam 之前安装 pyarrow,并且加载正常。但是,apache_beam 卸载然后重新安装它,这可能导致链接器错误。
关于如何使 apache_beam 工作有什么建议吗?
答案1
如果你最近将 macos 升级到 Catalina,那么此错误是由 pyarrow 引起的(已在https://issues.apache.org/jira/browse/BEAM-8368)
临时解决方案是固定 pyarrow < 0.14.0