Python中执行"python setup.py egg_info"失败并报错error code 1怎么办
python -m pip install --upgrade --force pip pip install setuptools==33.1.1 还有 easy-install 都试过了,都没用
Python中执行"python setup.py egg_info"失败并报错error code 1怎么办
pip install -v 可以查看更多日志,或许有利于排查问题。
遇到 python setup.py egg_info 失败并报错 error code 1,这通常是包安装依赖或环境问题导致的。直接说,别慌,按下面步骤排查,基本都能解决。
核心原因和解决方案
-
升级你的包管理工具:这是最常见、最有效的第一步。老版本的
pip、setuptools或wheel经常是罪魁祸首。pip install --upgrade pip setuptools wheel -
检查错误日志:错误信息
error code 1本身没意义,关键是它前面几行说了什么。通常会有类似"Failed building wheel for xxx"或"Command errored out with exit status 1"的提示,后面跟着具体的错误堆栈。把那个堆栈复制出来搜索,是定位问题的关键。 -
常见具体问题及代码级解决:
-
缺少系统级依赖:很多包(如
psycopg2、mysqlclient、cryptography)需要C编译器或系统库。- Linux (Debian/Ubuntu):
sudo apt-get update sudo apt-get install build-essential python3-dev libssl-dev libffi-dev # 根据具体错误提示,可能还需要其他库,如 libpq-dev (for PostgreSQL) - macOS:
# 确保已安装Xcode命令行工具 xcode-select --install # 使用Homebrew安装常用库 brew install openssl - Windows:最麻烦。对于需要编译的包,强烈建议:
- 安装 Microsoft C++ Build Tools。
- 或者,直接寻找该包的预编译二进制轮子(
.whl文件)。去 Unofficial Windows Binaries for Python Extension Packages 这个网站,下载对应你Python版本和系统架构(如cp39-win_amd64)的.whl文件,然后用pip install 下载的文件名.whl安装。
- Linux (Debian/Ubuntu):
-
Python版本不兼容:你用的Python版本可能太老或太新,与包要求的版本不匹配。检查包的官方文档或
setup.py中的python_requires。考虑使用虚拟环境(venv)管理不同项目的Python版本。 -
网络问题或源问题:如果从PyPI下载超时或失败,可以临时换用国内镜像源加速。
pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
-
标准排查流程
- 升级工具:
pip install --upgrade pip setuptools wheel - 仔细读报错:复制关键错误信息去搜索。
- 安装系统依赖:根据错误提示安装对应的系统开发库。
- 尝试其他安装方式:对于Windows,找预编译的
.whl文件;或者用conda安装(如果用了Anaconda),conda通常会处理好二进制依赖。
一句话总结:先升级 pip 和 setuptools,然后仔细看错误堆栈,缺啥系统依赖就装啥。
瞎猜个:sudo🤣
基本确定是因为 2.7 和 3.6 的版本差异

