提问者:小点点

命令“python setup.py egg_info”在/tmp/pip install jsegcbha/mysqlclient中失败,错误代码为1/


马科斯高地山脉

Python 3.6。3.

docker撰写。yml

version: '3'
services:
  celery:
    container_name: "cache_bot"
    build:
      context: .
      dockerfile: docker/celery/Dockerfile
    command: "celery -A cache_bot.app worker --loglevel=info"
    volumes:
      - ./src:/www

Dockerfile文件

FROM python:3.6-alpine

RUN apk --update add --no-cache bash gcc libc-dev unixodbc-dev python3-dev

ADD ./src /www
ADD ./requirements.txt /home

WORKDIR /www

RUN pip install -r /home/requirements.txt

要求。文本

mysqlclient==1.3.12
...

当我运行命令docker-comment build时,我得到了错误:

命令“python setup.py egg_info”在/tmp/pip install jsegcbha/mysqlclient中失败,错误代码为1/

错误:服务“芹菜”构建失败:命令“/bin/sh-c pip安装-r /home/requirements.txt”返回非零代码: 1

完全回溯:

收集mysqlClient==1.3.12(来自-r /home/requirements.txt(第8行))

正在下载https://files.pythonhosted.org/packages/6f/86/bad31f1c1bb0cc99e88ca2adb7cb5c71f7a6540c1bb001480513de76a931/mysqlclient-1.3.12.tar.gz(89kB)

命令pythonsetup.pyegg_info的完整输出:

/bin/sh:mysql_config:未找到

回溯(最近一次呼叫最后一次):

file"/tmp/pip-Instet-jsecbha/mysqlClient/setup.py",第17行,元数据,选项=get_config()

文件“/tmp/pip install jsegcbha/mysqlclient/setup_posix.py”,第44行,在get_config libs=mysql_config(“libs_r”)中

文件“/tmp/pip install jsegcbha/mysqlclient/setup_posix.py”,第26行,在mysql_config中

raise环境错误(“%s未找到”%)(mysql\u config.path,)

操作错误:未找到mysql\u配置

实际上,mysql_config是通过path/usr/local/bin进行配置的,这个路径是在$path中设置的

我已经尝试在Dockerfile中运行pip安装--升级setuptools。这没有帮助。

ENV PATH /usr/local/bin:$PATH在Dockerfile没有帮助。

非常感谢!!!!!!!!!!!!!!


共2个答案

匿名用户

问题在于您的Dockerfilepython:3.6-alpine是python的简化版本,mysqlclient正在寻找开发头和库。

这是官方页面Pypi: mysqlClient

先决条件:您可能需要安装Python和MySQL开发头和库。。。

我的解决方案:

在我的例子中,我使用了slim版本,我改为Python3(3.7),它可以工作。

#FROM python:3-slim
FROM python:3

匿名用户

我也有同样的问题在命令行上试试这个

brew install mysql-connector-c
brew install mysql
brew unlink mysql-connector-c
sudo pip install pymysql
sudo pip install mysqlclient