Сбой команды "python setup.py egg_info" с кодом ошибки 1 в / tmp / pip-install-jsegcbha / mysqlclient / - PullRequest
0 голосов
/ 02 июня 2018

MacOS High Sierra

Python 3.6.3

docker-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

needs.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 (89 КБ))

Полный вывод из команды python setup.py egg_info:

/ bin / sh: mysql_config: не найдено

Трассировка (последний последний вызов):

Файл "/tmp/pip-install-jsegcbha/mysqlclient/setup.py", строка 17, в метаданных, 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не найден "% (mysql_config.path,))

OSError: mysql_config не найден

На самом деле mysql_config находится по пути / usr / local / bin, и этот путь задан в $ PATH

Я пытался - RUN pip install --upgrade setuptools - в моем Dockerfile.Это не помогло.

ENV PATH / usr / local / bin: $ PATH в Dockerfile также не помогло.

Большое спасибо !!!!!!!!!!!!!

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Проблема в вашем Dockerfile python:3.6-alpine - это сокращенная версия Python, а mysqlclient ищет заголовки и библиотеки для разработки.

Это официальная страница Pypi: mysqlclient

Предварительные требования: Возможно, вам потребуется установить заголовочные файлы и библиотеки разработки Python и MySQL ...

Мое решение:

В моем случае у меня была уменьшенная версия, и я перешел на Python 3 (3.7), и он работает.

#FROM python:3-slim
FROM python:3
0 голосов
/ 17 августа 2018

У меня была такая же проблема, попробуйте это в командной строке

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