psycopg2导入错误SSL_check_private_key:未找到符号

问题描述 投票:0回答:2

我正在使用Docker和psycopg2与我的docker-compose中的另一个数据库服务连接。但是,我收到了psycopg2的导入错误:

Python 3.8.2 (default, Feb 29 2020, 17:03:31)
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import psycopg2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.8/site-packages/psycopg2/__init__.py", line 50, in <module>
    from psycopg2._psycopg import (                     # noqa
ImportError: Error relocating /usr/lib/python3.8/site-packages/psycopg2/_psycopg.cpython-38-x86_64-linux-gnu.so: SSL_check_private_key: symbol not found

这是我正在尝试将psycopg2与以下一起使用的Dockerfile:

FROM osgeo/gdal:alpine-normal-latest

ENV PYTHONUNBUFFERED 1

RUN apk update && apk add \
    --virtual build-deps gcc python-dev musl-dev \
    postgresql-dev \
    libpq \
    python3-dev \
    curl \
    libffi-dev

ADD . /app
WORKDIR /app

COPY requirements.txt requirements.txt
RUN pip3 install --no-cache-dir -r requirements.txt

CMD ["sh", "./entry.sh"]
python docker psycopg2 alpine osgeo
2个回答
0
投票

似乎我正在使用的docker映像出现问题。我最终使用了thinkwhere/gdal-python:3.7-shippable,并且能够导入psycopg2而没有任何问题。


0
投票

问题似乎是最近的高山映像没有自动安装openssl。我在基于alpine的自定义构建的Docker映像中遇到了相同的问题,并在构建/安装我们的Python依赖项之前通过安装openssl包来修复了它。

© www.soinside.com 2019 - 2024. All rights reserved.