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

时间:2018-06-02 13:24:07

标签: python mysql docker pip macos-sierra

MacOS High Sierra

Python 3.6.3

搬运工-compose.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

requirements.txt

mysqlclient==1.3.12
...

当我运行命令'docker-compose build'时,我收到错误:

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

错误:服务'celery'无法构建:命令'/ bin / sh -c pip install -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)

从命令python setup.py egg_info完成输出:

/ bin / sh:mysql_config:找不到

追踪(最近一次呼叫最后一次):

文件“/tmp/pip-install-jsegcbha/mysqlclient/setup.py”,第17行,in         metadata,options = 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中

引发EnvironmentError(“%s not found”%(mysql_config.path,))

OSError:找不到mysql_config

实际上,mysql_config是路径/ usr / local / bin,这个路径是在$ PATH中设置的

我试过 - 在我的Dockerfile中运行pip install --upgrade setuptools。它没有帮助。

ENV PATH / usr / local / bin:Dockerfile中的$ PATH也无济于事。

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

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,请在命令行上尝试

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

答案 1 :(得分:0)

问题出在您的Dockerfile中,python:3.6-alpine是Python的简化版本,而mysqlclient正在寻找开发标头和库。

这是官方页面Pypi: mysqlclient

  

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

我的解决方案:

在我的情况下,我使用的是修身版,我改用Python 3(3.7),它可以正常工作。

#FROM python:3-slim
FROM python:3