运行main.py时出现cv2导入ImportError: DLL load failed错误求助
解决cv2导入时的DLL加载失败问题
问题背景
运行main.py时触发如下错误:
Traceback (most recent call last): File "main.py", line 5, in <module> from preview import generate_preview_image File "C:\abc\python-speed-GUI\preview.py", line 2, in <module> import cv2 File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\cv2\__init__.py",line 181, in <module> bootstrap() File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\cv2\__init__.py",line 153, in bootstrap native_module = importlib.import_module("cv2") File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\importlib\__init__.py",line 127, in <module> return _bootstrap._gcd_import(name[level:], package, level) ImportError:DLL load failed:
当前环境与已安装包:
- 运行环境:Python 3.7.0、Windows Server 2012
- 已安装包:opencv-python 4.8.0.76、opencv-contrib-python 4.8.0.76、numpy 1.21.6
解决方案
尝试以下步骤逐一排查:
1. 安装对应版本的VC++运行库
OpenCV依赖Microsoft Visual C运行库,Windows Server 2012默认可能缺少适配OpenCV 4.x的版本。安装**Microsoft Visual C 2015-2019 Redistributable**(选择与你的Python架构匹配的x86/x64版本),安装完成后重启系统。
2. 降级OpenCV版本
OpenCV 4.8.0对Python 3.7和Windows Server 2012的兼容性可能存在问题,尝试降级到更稳定的4.5.x版本:
# 先卸载现有OpenCV包 pip uninstall -y opencv-python opencv-contrib-python # 安装指定版本 pip install opencv-python==4.5.5.62 opencv-contrib-python==4.5.5.62
3. 验证Python与OpenCV的架构匹配
确保Python和OpenCV的架构(x86/x64)完全一致:
# 检查Python架构,返回True为x64,False为x86 python -c "import sys; print(sys.maxsize > 2**32)"
若架构不匹配,卸载当前OpenCV包,安装对应架构的版本,或更换匹配架构的Python。
4. 添加相关路径到系统PATH
将Python的Scripts目录和cv2的bin目录添加到系统环境变量PATH中:
- 路径示例:
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\ScriptsC:\Users\Administrator\AppData\Local\Programs\Python\Python37\Lib\site-packages\cv2\bin
添加完成后重启终端,再运行脚本。
5. 重新安装numpy依赖
修复可能存在的numpy安装损坏问题:
pip uninstall -y numpy pip install numpy==1.21.6
内容的提问来源于stack exchange,提问作者J Peg
相关产品推荐
相关产品推荐

