尽管有 'psycopg2-binary',但没有名为 'psycopg2.extensions' 的模块

No module named 'psycopg2.extensions' despite having 'psycopg2-binary'

我正在尝试开发一个利用 psycopg2 的 Django 项目,但是当我在 python:3.7.4-slim 上的 Docker 容器中部署时,我 运行 正在进入 'no pg_config' 问题,所以我确定在一些挖掘之后继续进行的最佳方法是使用 psycopg2-binary 因为这似乎是推荐的前进方式。

现在唯一的问题是,当我尝试从本地 运行 命令 python manage.py <...> 时,出现错误:

ModuleNotFoundError: No module named 'psycopg2.extensions'

我不确定如何继续,因为 psycopg2 在本地运行良好,但我们最终将容器化此资源并将其放在 k8s 集群中,所以我相当确定二进制库是正确的方法。有没有人想出一个解决方案来引入 psycopg2.extensions 而不会牺牲使用二进制分发的完整性?

我的主要抱怨是我不明白为什么 psycopg2 会附带这个 extensions 模块,而 binary 不会,在这一点上我觉得解决方法是强制存储 extensions 在我的存储库中本地某处只是这样调用它,尽管我觉得必须有一个更直观的解决方法。

我也完全有可能误解了 psycopg2 与二进制文件的使用,我应该在部署时使用前者,但我不知道它在 linux 中需要什么依赖项环境?

很高兴根据需要提供更多上下文。

谢谢!

我确定 'solutioning' 使问题过于复杂——我错误地认为最好的方法是使用 psycopg2-binary,因为我无法找出正确的依赖关系。经过一些挖掘后,我发现 psyocopg2 可以与 python:3.7.4-slim 图像一起使用(除其他外 - 我确信这也会级联到其他发行版) 运行 pip install 之前的以下内容:

apt-get update && apt-get -y install libpq-dev gcc

似乎这就是使用 psycopg2 而不是二进制文件所需的全部内容。