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怎么办
4 回复

pip install -v 可以查看更多日志,或许有利于排查问题。


遇到 python setup.py egg_info 失败并报错 error code 1,这通常是包安装依赖或环境问题导致的。直接说,别慌,按下面步骤排查,基本都能解决。

核心原因和解决方案

  1. 升级你的包管理工具:这是最常见、最有效的第一步。老版本的 pipsetuptoolswheel 经常是罪魁祸首。

    pip install --upgrade pip setuptools wheel
    
  2. 检查错误日志:错误信息 error code 1 本身没意义,关键是它前面几行说了什么。通常会有类似 "Failed building wheel for xxx""Command errored out with exit status 1" 的提示,后面跟着具体的错误堆栈。把那个堆栈复制出来搜索,是定位问题的关键。

  3. 常见具体问题及代码级解决

    • 缺少系统级依赖:很多包(如 psycopg2mysqlclientcryptography)需要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:最麻烦。对于需要编译的包,强烈建议:
        1. 安装 Microsoft C++ Build Tools
        2. 或者,直接寻找该包的预编译二进制轮子(.whl 文件)。去 Unofficial Windows Binaries for Python Extension Packages 这个网站,下载对应你Python版本和系统架构(如 cp39-win_amd64)的 .whl 文件,然后用 pip install 下载的文件名.whl 安装。
    • 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
      

标准排查流程

  1. 升级工具pip install --upgrade pip setuptools wheel
  2. 仔细读报错:复制关键错误信息去搜索。
  3. 安装系统依赖:根据错误提示安装对应的系统开发库。
  4. 尝试其他安装方式:对于Windows,找预编译的 .whl 文件;或者用 conda 安装(如果用了Anaconda),conda 通常会处理好二进制依赖。

一句话总结:先升级 pipsetuptools,然后仔细看错误堆栈,缺啥系统依赖就装啥。

瞎猜个:sudo🤣

基本确定是因为 2.7 和 3.6 的版本差异

回到顶部