【发布时间】:2021-03-07 12:38:57
【问题描述】:
我一直在 stackoverflow 上寻找解决这个问题的方法:
我尝试了不同的方法,不幸的是我没有解决它。
场景:
我有一个 python 脚本,它通过 Apache Beam 从 Google Pubsub 读取消息。 每收到一条消息,我都会调用一个插入 PostgreSQL 表的过程:
我的方法使用 psycopg2 连接调用 PostgreSQL 存储过程:
在 DirectRunner 上运行我的代码,它运行良好。当我在 Dataflow 上运行它时,我收到了消息:
ModuleNotFoundError: 没有名为“psycopg2”的模块。
有人可以帮帮我吗?
谢谢, 朱利亚诺
【问题讨论】:
-
这只是表明
psycopg2没有安装在您运行代码的任何位置。我不使用 DataFlow,因此以下是通用建议:1)如果可能,请在环境中安装psycopg2)找出“本机”连接库并使用它。 -
嗨@AdrianKlaver,谢谢你的建议。当我转到 Google Cloud Platform 和“pip list”时,我安装了 psycopg2: psycopg2 2.8.6 psycopg2-binary 2.8.6 这就是我担心的原因,它已安装但我不能用它。 =(
-
就像我说的我不使用 DataFlow,所以这超出了我的深度。最好的猜测是它运行在与
pip list不同的环境中。
标签: postgresql python-2.7 google-cloud-dataflow psycopg2 apache-beam