You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已安装torch但安装detectron2时仍提示ModuleNotFoundError: No module named 'torch'

已安装torch但安装detectron2时仍提示ModuleNotFoundError: No module named 'torch'

看起来你遇到的是典型的Python环境不匹配问题——虽然你确实装了torch,但detectron2的安装脚本没找到它,大概率是因为你用的pip和Python不是同一个环境里的。我来给你几个排查和解决的方向,你可以一步步试:

1. 先确认pip和Python是不是对应同一个环境

macOS上自带的Python加上你自己安装的版本很容易搞混,先在终端跑这几个命令验证:

# 查看当前Python3的路径
which python3
# 查看当前pip3的路径
which pip3
# 查看Python能识别到的torch版本和安装路径
python3 -c "import torch; print(torch.__version__); print(torch.utils.cmake_prefix_path)"

如果前两个命令的路径不在同一个文件夹下(比如一个是系统默认的/usr/bin/,一个是你自己安装的/Users/你的用户名/Library/Python/3.10/bin/),说明你用的pip和Python不是一套的——torch装在了Python3.10的环境里,但pip3可能在调用另一个Python版本的工具。

这时候直接用Python自带的-m pip来安装,确保用的是同一个环境的pip:

CC=clang CXX=clang++ ARCHFLAGS="-arch x86_64" python3 -m pip install 'git+https://github.com/facebookresearch/detectron2.git@v0.4#egg=detectron2'

2. 检查虚拟环境(如果用了的话)

如果你是用venv、conda这类虚拟环境装的torch,那安装detectron2之前一定要先激活对应的虚拟环境!很多人会漏这一步——只有激活环境后,安装脚本才能找到环境里的torch。

3. 确认Python和torch的架构匹配

你用的是macOS Sequoia,虽然指定了x86_64的ARCHFLAGS,但要先确认你的Python是不是对应架构的:

python3 -c "import platform; print(platform.machine())"

如果输出是arm64,说明你用的是Apple Silicon版本的Python,但detectron2 v0.4是比较老的版本(2021年的),对Apple Silicon的支持不好。这时候有两个选择:

  • 要么安装detectron2的最新版本,放弃v0.4:
    CC=clang CXX=clang++ ARCHFLAGS="-arch arm64" python3 -m pip install 'git+https://github.com/facebookresearch/detectron2.git'
    
  • 要么用Rosetta 2打开终端(右键终端,选择“使用Rosetta打开”),在x86_64兼容环境下重新安装torch和detectron2。

4. 清理pip缓存再试试

有时候pip的缓存会导致奇怪的依赖识别问题,先清理缓存再安装:

pip3 cache purge
# 再用正确的环境命令重新安装
CC=clang CXX=clang++ ARCHFLAGS="-arch x86_64" python3 -m pip install 'git+https://github.com/facebookresearch/detectron2.git@v0.4#egg=detectron2'

5. 手动指定torch路径(极端情况)

如果上面的方法都不行,你可以手动把torch的路径传给安装脚本,强制让它找到torch:

# 先获取torch的安装路径
TORCH_PATH=$(python3 -c "import torch; print(torch.utils.cmake_prefix_path)")
# 带着路径执行安装命令
CC=clang CXX=clang++ ARCHFLAGS="-arch x86_64" CMAKE_PREFIX_PATH=$TORCH_PATH python3 -m pip install 'git+https://github.com/facebookresearch/detectron2.git@v0.4#egg=detectron2'

建议先从第一个方法开始试,环境不匹配是这类问题最常见的原因。如果还是不行,把python3 -c "import torch; print(torch.__version__); print(torch.utils.cmake_prefix_path)"的输出贴出来,我再帮你进一步排查!

备注:内容来源于stack exchange,提问作者Niek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 18:09:31