在Docker文件中设置mysql-connector-python

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

我正在尝试建立一个与Python 3.6.5中的SqlAlchemy一起使用的mysql连接。我的Dockerfile中有以下内容:

RUN pip3 install -r /event_git/requirements.txt

我也有,在requirements.txt中:

mysql-connector-python==8.0.15

但是,我无法连接到数据库。我还需要做些什么来设置它吗?

更新:我有8.0.5工作但不是8.0.15。显然,增加了一个protobuf依赖;有谁知道如何处理?

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依赖)。

python-3.x docker dockerfile protocol-buffers mysql-connector-python
2个回答
0
投票

mysql-connector-python将Python Protobuf作为安装要求,这意味着protobuf将沿着mysql-connector-python安装。如果这不起作用,请尝试在requirements.txt中添加protobuf==3.6.1


0
投票

找出问题所在。关键是import mysql.connector需要位于create_engine所在文件的顶部。仍然不确定确切的原因,但至少似乎定义_CONNECTION_POOLS = {}。如果有人知道为什么,请提出你的想法。

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