Ubuntu20.04下Python3.8导入numpy失败,求解决方法
问题分析与解决建议
这个问题本质是多Python版本(3.6+3.8)导致的依赖环境冲突,numpy的安装路径、版本与当前运行的Python解释器不匹配,或者残留的旧numpy文件干扰了正常导入。卸载重装无效,大概率是没清理干净残留,或者用错了对应Python版本的pip。
解决步骤
1. 确认当前运行的Python版本
先明确你运行代码时实际调用的Python版本:
python --version python3 --version python3.6 --version python3.8 --version
运行代码时直接指定目标版本,比如用python3.8 19mayıs.py而非笼统的python或python3。
2. 彻底清理所有numpy残留
- 卸载对应Python版本的numpy:
针对Python3.8:
针对Python3.6:pip3.8 uninstall -y numpypip3.6 uninstall -y numpy - 移除系统apt安装的numpy(若存在):
sudo apt remove -y python3-numpy - 手动删除残留文件:
找到对应Python的包目录(比如Python3.8的是/usr/lib/python3.8/dist-packages/或~/.local/lib/python3.8/site-packages/),删除里面的numpy文件夹和numpy-*.dist-info文件夹。
3. 重新安装适配的numpy版本
根据Python版本选择兼容的numpy:
- Python3.8搭配numpy 1.21.x(适配多数旧版OpenCV):
pip3.8 install numpy==1.21.6 - Python3.6搭配numpy 1.19.x:
pip3.6 install numpy==1.19.5
4. 用虚拟环境隔离依赖(推荐)
多Python版本共存时,虚拟环境能彻底隔离不同项目的依赖,避免冲突:
- 创建Python3.8的虚拟环境:
python3.8 -m venv my_deepsort_env - 激活虚拟环境:
source my_deepsort_env/bin/activate - 在虚拟环境内安装所有依赖:
pip install numpy==1.21.6 opencv-python [你的deepsort相关依赖] - 运行代码时保持虚拟环境激活,或直接调用虚拟环境的解释器:
my_deepsort_env/bin/python 19mayıs.py
5. 同步OpenCV的安装路径
确保OpenCV安装在当前使用的Python版本下,比如用pip3.8 install opencv-python重新安装,避免系统自带的OpenCV与用户安装的Python版本不兼容。
内容的提问来源于stack exchange,提问作者yume
相关产品推荐
相关产品推荐

