从pythonalpin安装MySQLpython失败

2024-06-07 23:46:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我要用下面的Dockerfile构建一个docker镜像:

FROM python:2.7-alpine
RUN set -ex \
        && apk --no-cache add --virtual build-dependencies \
        && pip install --no-cache-dir mysql-python

它通过以下方式下载软件包:

^{pr2}$

并执行

python setup.py install

但失败并返回以下错误:

_mysql.c: In function '_mysql_ConnectionObject_ping':
_mysql.c:2005:41: error: 'MYSQL {aka struct st_mysql}' has no member named 'reconnect'
  if ( reconnect != -1 ) self->connection.reconnect = reconnect;
                                         ^
error: command 'gcc' failed with exit status 1

但当我尝试使用:

FROM python:2.7

它非常有效。 有什么想法吗?在


Tags: installdockernorunfromdockerfilecache镜像
2条回答

解决方案是使用mysqlclient包代替MySQL python,这是一个解决当前MySQL python存在的多个问题的fork。在

https://github.com/PyMySQL/mysqlclient-python

从这个comment我的理解是mysql和mariadb有一个稍有不同的API,这会导致alpine中的编译失败。在

Alpine已经提供了工作正常的py-mysqldb包,但是它依赖于它自己的python2包。我的建议是:

FROM alpine:3.8

RUN apk  no-cache add python2 py-mysqldb

相关问题 更多 >

    热门问题