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

Posted

技术标签:

【中文标题】命令“python setup.py egg_info”在 /tmp/pip-install-jsegcbha/mysqlclient/ 中失败,错误代码为 1【英文标题】:Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-jsegcbha/mysqlclient/ 【发布时间】:2018-11-12 10:03:05 【问题描述】:

MacOS 高山脉

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

requirements.txt

mysqlclient==1.3.12
...

当我运行命令“docker-compose build”时出现错误:

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

错误:服务“芹菜”构建失败:命令“/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: 未找到

Traceback(最近一次调用最后一次):

文件“/tmp/pip-install-jsegcbha/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 EnvironmentError("%s not found" % (mysql_config.path,))

操作系统错误:找不到 mysql_config

其实mysql_config是通过路径/usr/local/bin,这个路径是在$PATH中设置的

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

Dockerfile 中的 ENV PATH /usr/local/bin:$PATH 也没有帮助。

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

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,在命令行试试这个

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

【讨论】:

【参考方案2】:

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

是官方页面Pypi: mysqlclient

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

我的解决方案:

在我的情况下,我使用的是超薄版本,然后我更改为 Python 3 (3.7),它可以工作。

#FROM python:3-slim
FROM python:3

【讨论】:

好答案! Python 和 MySQL 开发头文件和库已经在图像 python:3 中

以上是关于命令“python setup.py egg_info”在 /tmp/pip-install-jsegcbha/mysqlclient/ 中失败,错误代码为 1的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用命令(网络命令和关机重启命令)

linux命令的排列替换与别名

Docker学习重点~docker命令:帮助命令镜像命令容器命令常用其他命令

每天一个 Linux 命令网络相关命令(ifconfigroutepingtraceroutenetstatsstelnetrcpscp)

Linux基础命令

网络安全—Linux命令