当前位置: 首页 > news >正文

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/mmdetectionRunning command Checking if build backend supports build_editableChecking if build backend supports build_editable ... doneRunning command Preparing metadata (pyproject.toml)running dist_info
-bash: Obtaining: command not foundcreating /tmp/pip-modern-metadata-g_g33xul/mmdet.egg-infowriting 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); dopip 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 错误和文件找不到的问题。关键是确保安装所有构建依赖并预先构建扩展模块。

http://www.xdnf.cn/news/908101.html

相关文章:

  • docker 部署redis集群 配置
  • 【学习笔记】单例类模板
  • 深入理解二叉搜索树:原理到实践
  • libGL error
  • IDEA安装迁移IDEA配置数据位置
  • SQL进阶之旅 Day 19:统计信息与优化器提示
  • 10个成功案例剖析|融质AI创新实践
  • 【多线程初阶】阻塞队列 生产者消费者模型
  • Python备忘
  • CST人工电源网络阻抗计量校准
  • Python打卡训练营学习记录Day46
  • Arch-hyprland常用配置
  • 【Algo】常见组合类数列
  • 在centos7.9重置qcow2 root密码-qcow2忘记密码
  • 《0/1背包》题集
  • 【大厂机试题解法笔记】最差产品奖
  • 大模型编程助手-windsurf
  • 云服务器厂商机房是什么
  • CMOS图像传感器系列--(二)HDR之DAG技术
  • 跟我学c++中级篇——理解类型推导和C++不同版本的支持
  • 旅行商问题(TSP)的 C++ 动态规划解法教学攻略
  • python --导出数据库表结构(pymysql)
  • React从基础入门到高级实战:React 实战项目 - 项目四:企业级仪表盘
  • Profinet 协议 IO-Link 主站网关(三格电子)
  • DDD架构实战 领域层 事件驱动
  • Hive窗口函数RANGE BETWEEN详解:用法、场景与案例(附真实业务案例)
  • spring重试机制
  • 三菱PLC与西门子PLC如何实现485通讯?
  • 关于锁策略的简单介绍
  • echarts柱状图实现动态展示时报错