error: subprocess-exited-with-error【已解决】

问题详述

安装mmdetection的时候出现了如下错误:

(mmdet) [root@localhost mmdetection]# Using pip 25.1.1 from /root/mmdet/lib64/python3.9/site-packages/pip (python 3.9)
-bash: syntax error near unexpected token `('
(mmdet) [root@localhost mmdetection]# Obtaining file:///root/mmdetection
  Running command Checking if build backend supports build_editable
  Checking if build backend supports build_editable ... done
  Running command Preparing metadata (pyproject.toml)
  running dist_info
-bash: Obtaining: command not found
  creating /tmp/pip-modern-metadata-g_g33xul/mmdet.egg-info
  writing manifest file '/tmp/pip-modern-metadata-g_g33xul/mmdet.egg-info/SOURCES.txt'
  warning: no files found matching 'mmdet/VERSION'
  warning: no files found matching 'mmdet/.mim/demo/*/*'
  writing manifest file '/tmp/pip-modern-metadata-g_g33xul/mmdet.egg-info/SOURCES.txt'
  error: invalid command 'bdist_wheel'
  error: subprocess-exited-with-error

  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

解决方法

# 4. 进入项目目录
cd ~/mmdetection

# 5. 安装构建依赖
pip install -r requirements/build.txt
pip install -r requirements/optional.txt

# 6. 预构建扩展
python setup.py build_ext

# 7. 安装MMDetection
python setup.py develop

如果不行可以从下面的方式中找解决方法

1. 确保环境干净
# 退出当前虚拟环境
deactivate

# 删除现有虚拟环境
rm -rf ~/mmdet

# 创建新的虚拟环境
python -m venv ~/mmdet
source ~/mmdet/bin/activate
2. 安装基础依赖
# 更新pip和安装必要工具
pip install --upgrade pip setuptools wheel

# 安装系统依赖
sudo yum install geos-devel python3-devel gcc-c++ -y

# 安装NumPy开发头文件
pip install numpy cython
3. 修复MMDetection安装问题
# 进入项目目录
cd ~/mmdetection

# 先安装构建依赖
pip install -r requirements/build.txt
pip install -r requirements/optional.txt

# 生成版本文件(解决VERSION警告)
python setup.py build_ext

# 安装MMDetection(使用开发模式)
python setup.py develop
4. 替代安装方法(如果上述失败)
# 使用openmim安装
pip install openmim
mim install -e .
5. 验证安装
# 检查MMDetection是否安装成功
python -c "import mmdet; print(mmdet.__version__)"

# 测试是否可以导入
python -c "from mmdet.apis import init_detector; print('Success!')"

如果仍然遇到问题

方案A:手动安装所有依赖
# 安装所有requirements中的依赖
for req in $(ls requirements/*.txt); do
    pip install -r $req
done

# 然后尝试安装
python setup.py develop
方案B:使用Docker安装
# 使用官方MMDetection Docker镜像
docker pull mmdetection/mmdetection:latest

# 或者自己构建
docker build -t mmdetection . -f docker/Dockerfile
方案C:检查项目完整性
# 确保项目文件完整
git status
git reset --hard
git clean -fdx

# 重新克隆项目
cd ~
rm -rf mmdetection
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection

完整安装脚本

#!/bin/bash

# 1. 创建并激活虚拟环境
python -m venv ~/mmdet
source ~/mmdet/bin/activate

# 2. 安装系统依赖
sudo yum install geos-devel python3-devel gcc-c++ -y

# 3. 更新pip和安装基础包
pip install --upgrade pip setuptools wheel numpy cython

# 4. 进入项目目录
cd ~/mmdetection

# 5. 安装构建依赖
pip install -r requirements/build.txt
pip install -r requirements/optional.txt

# 6. 预构建扩展
python setup.py build_ext

# 7. 安装MMDetection
python setup.py develop

# 8. 验证安装
python -c "import mmdet; print(f'MMDetection version: {mmdet.__version__}')"

注意事项

  1. 不要复制粘贴命令输出

    • 只执行命令本身,不要复制粘贴命令的输出结果
  2. 权限问题

    • 避免使用root用户,如果必须使用,请确保环境一致
    sudo chown -R $USER:$USER ~/mmdet
    sudo chown -R $USER:$USER ~/mmdetection
    
  3. 日志分析

    • 如果安装失败,检查详细日志:
    pip install -v -e . 2>&1 | tee install.log
    
  4. 版本兼容性

    • 确保Python版本(3.6-3.9)与MMDetection兼容
    • 确保PyTorch版本匹配

这些步骤应该能解决您遇到的 bdist_wheel 错误和文件找不到的问题。关键是确保安装所有构建依赖并预先构建扩展模块。

你可能感兴趣的:(疑难问题,chrome,前端)