同一Python环境下无法同时导入PyTorch与OpenCV问题求助
问题根源
你当前的两个库分别安装在完全独立的两个Python环境中:
- 系统全局Python 3.8版本:已安装源码编译的OpenCV,未安装PyTorch
- Anaconda的base环境(Python 3.7版本):已安装PyTorch,未安装OpenCV
解决方案
方案1:直接在Anaconda base环境安装OpenCV(最简单)
激活base环境后直接执行安装命令即可,不需要使用之前源码编译的版本:
conda activate base # 二选一安装即可 conda install opencv # 或者用pip pip install opencv-python
安装完成后在base环境中可同时导入两个库。
方案2:保留源码编译的OpenCV,适配Anaconda环境
如果你必须使用自行编译的OpenCV版本,需要重新针对Anaconda base环境的Python版本编译OpenCV:
- 激活base环境,记录Python路径:执行
which python3,得到类似/home/你的用户名/anaconda3/bin/python3的路径 - 编译OpenCV时,在cmake阶段指定对应Python参数:
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D PYTHON_EXECUTABLE=/home/你的用户名/anaconda3/bin/python3 \ -D PYTHON_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \ -D PYTHON_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \ ..
- 后续照常执行
make和make install即可,编译完成的OpenCV会适配base环境的Python 3.7,可直接导入。
方案3:在系统Python 3.8中安装PyTorch
如果不想使用Anaconda环境,直接在全局Python 3.8中执行PyTorch的pip安装命令即可,安装完成后全局Python下可同时导入两个库。
验证方法
选择对应方案操作完成后,执行以下操作验证:
import torch import cv2 # 无报错即为配置成功 print(torch.__version__) print(cv2.__version__)
内容的提问来源于stack exchange,提问作者Pixolish
相关产品推荐
相关产品推荐

