You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Conda环境中已安装pip但执行pip install -r requirements.txt时仍报No module named 'pip'错误

Conda环境中已安装pip但执行pip install -r requirements.txt时仍报No module named 'pip'错误

问题背景

我刚上手Anaconda,克隆了THU-MIG的yoloe仓库后,激活了名为yoloe的Conda环境(Python 3.10,环境路径在D:\ProgramData\anaconda3\envs\yoloe),执行pip install -r requirements.txt时卡在了安装third_party/lvis-api的步骤,报错提示ModuleNotFoundError: No module named 'pip',但明明pip list显示pip已经安装在当前环境中。

错误详情

执行安装命令后的核心错误日志:

Obtaining file:///D:/code/yoloe/third_party/lvis-api (from -r requirements.txt (line 2))
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... error
  error: subprocess-exited-with-error
  × Getting requirements to build editable did not run successfully.
  │ exit code: 1
  ╰─> [19 lines of output]
      Traceback (most recent call last):
        File "D:\ProgramData\anaconda3\envs\yoloe\lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 389, in <module>
          main()
        ...
        File "<string>", line 10, in <module>
      ModuleNotFoundError: No module named 'pip'
      [end of output]

已排查信息

  1. 当前环境的pip状态:
Package    Version
---------- -------
packaging  25.0
pip        26.0.1
setuptools 80.10.2
wheel      0.46.3
  1. .condarc配置:
channels:
  - defaults
show_channel_urls: true
envs_dirs:
  - D:\ProgramData\anaconda3\envs
pkgs_dirs:
  - D:\ProgramData\anaconda3\pkgs
  1. 已将Anaconda相关路径加入系统PATH:
  • D:\ProgramData\anaconda3
  • D:\ProgramData\anaconda3\Scripts
  • D:\ProgramData\anaconda3\Library\bin
  • D:\ProgramData\anaconda3\Library\mingw-w64\bin
  1. 尝试过Python 3.13的新环境,问题依旧;执行python -m ensurepip也无法解决。

解决方案

这个问题的核心是pip在构建隔离环境(build isolation)中缺少pip依赖——lvis-api的setup.py代码中直接导入了pip模块,但pip默认的构建隔离环境只包含setuptools和wheel,没有pip。以下是几个可行的解决步骤:

方案1:升级当前环境的pip和setuptools到兼容版本

先确保pip、setuptools和wheel是最新兼容的版本,避免版本不兼容导致的隔离环境异常:

pip install --upgrade pip setuptools wheel

升级完成后,再次执行:

pip install -r requirements.txt

方案2:禁用构建隔离单独安装lvis-api

针对lvis-api的安装,直接禁用pip的构建隔离模式,让它使用当前环境的依赖来构建:

pip install -e D:\code\yoloe\third_party\lvis-api --no-build-isolation

安装完成lvis-api后,再回到仓库根目录执行完整的requirements安装:

cd D:\code\yoloe
pip install -r requirements.txt

方案3:创建全新的干净Conda环境重新尝试

如果以上方法都无效,可能是当前环境存在配置残留,创建一个全新环境从头开始:

# 退出当前环境
conda deactivate

# 删除旧环境
conda remove -n yoloe --all -y

# 创建新的Python 3.10环境
conda create -n yoloe python=3.10 -y

# 激活新环境
conda activate yoloe

# 克隆仓库(如果还没克隆)
git clone https://github.com/THU-MIG/yoloe/
cd yoloe

# 升级依赖工具
pip install --upgrade pip setuptools wheel

# 安装requirements
pip install -r requirements.txt

方案4:修改lvis-api的setup.py(进阶)

如果愿意修改源码,可以打开D:\code\yoloe\third_party\lvis-api\setup.py,找到第10行导入pip的代码,替换为不依赖pip的方式来获取依赖。比如如果原代码是用pip.req.parse_requirements来读取requirements.txt,可以替换为用setuptools的内置方法,或者手动列出依赖。

问题原因说明

pip在安装-e(editable)模式的包时,会自动创建一个独立的临时构建环境,目的是避免当前环境的依赖干扰构建。但这个默认的隔离环境只包含setuptoolswheel,没有pip。而lvis-api的setup.py中直接使用了import pip的代码,导致在隔离环境中找不到pip模块,从而抛出错误。禁用构建隔离或确保隔离环境包含pip,就能解决这个问题。

火山引擎 最新活动