Ошибка импорта psycopg2 SSL_check_private_key: символ не найден - PullRequest
0 голосов
/ 08 марта 2020

Я использую 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

Вот мой Dockerfile, который я пытаюсь использовать psycopg2 с:

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"]

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Похоже, проблема заключается в том, что в последних альпийских образах openssl не устанавливается автоматически. У меня была та же проблема с пользовательским Docker изображением на основе alpine, и я исправил его, установив пакет openssl перед сборкой / установкой наших Python зависимостей.

0 голосов
/ 09 марта 2020

Кажется, что была проблема с изображением docker, которое я использовал. Я использовал thinkwhere/gdal-python:3.7-shippable и смог импортировать psycopg2 без проблем.

...