Настройка mysql-connector-python в файле Docker - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь установить соединение mysql, которое будет работать с SqlAlchemy в Python 3.6.5.В моем Dockerfile у меня есть следующее:

RUN pip3 install -r /event_git/requirements.txt

У меня также есть в файле require.txt:

mysql-connector-python==8.0.15

Однако я не могу подключиться к БД.Что-нибудь еще, что мне нужно сделать, чтобы настроить это?

Обновление: у меня работает 8.0.5, но не 8.0.15.По-видимому, была добавлена ​​зависимость от protobuff;Кто-нибудь знает, как с этим справиться?

Файл Docker:

RUN apt-get -y update && apt-get install -y python3 python3-pip fontconfig wget nodejs nodejs-legacy npm
RUN pip3 install --upgrade pip
# Copy contents of this directory (i.e. full source) to image
COPY . /my_project
# Install Python dependencies
RUN pip3 install -r /event_git/requirements.txt
# Set event_git folder as working directory
WORKDIR /my_project
ENV LANG C.UTF-8

Я запускаю его через

docker build -t event_git .;docker run -t -i event_git /bin/bash

и затем выполняю скрипт;БД находится на моей локальной машине.Это работает на mysql-connector-python == 8.0.5, но не на 8.0.15, поэтому установка в порядке;Я думаю, что мне просто нужно выполнить добавленную зависимость protobuff (см. https://github.com/pypa/warehouse/issues/5537 для упоминания о зависимости protobuff).

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Разобрался с проблемой.Ключ в том, что import mysql.connector должен находиться в верхней части файла, где находится create_engine.Все еще не уверен в точной причине, но, по крайней мере, это определяет _CONNECTION_POOLS = {}.Если кто-то знает почему, пожалуйста, дайте свои мысли.

0 голосов
/ 09 апреля 2019

mysql-connector-python имеет в качестве требования для установки Python Protobuf, это означает, что protobuf будет установлен вдоль mysql-connector-python.Если это не сработает, попробуйте добавить protobuf==3.6.1 в файл needs.txt.

...