Conda环境下OpenCV在CMD无法导入但VS Code可用的问题
问题描述
在Windows CMD中激活同一个Conda环境后,无法导入cv2,报错:ImportError: DLL load failed while importing cv2: The specified module could not be found,但在VS Code中使用该环境却能正常导入cv2。所有包均通过Conda安装,尝试过用environment.yml创建新内核,但问题仍未解决。
环境包列表
(Project) C:\Users\LE>conda list # packages in environment at C:\Users\LE\.conda\envs\Project: # # Name Version Build Channel asttokens 2.2.1 pyhd8ed1ab_0 conda-forge backcall 0.2.0 pyh9f0ad1d_0 conda-forge backports 1.0 pyhd8ed1ab_3 conda-forge backports.functools_lru_cache 1.6.5 pyhd8ed1ab_0 conda-forge bzip2 1.0.8 he774522_0 ca-certificates 2023.5.7 h56e8100_0 conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge comm 0.1.3 pyhd8ed1ab_0 conda-forge debugpy 1.6.7 py310h00ffb61_0 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge eigen 3.4.0 h2d74725_0 conda-forge executing 1.2.0 pyhd8ed1ab_0 conda-forge ffmpeg 4.2.3 ha925a31_0 conda-forge freetype 2.10.4 h546665d_1 conda-forge glib 2.69.1 h5dc1a3c_2 gst-plugins-base 1.18.5 h9e645db_0 gstreamer 1.18.5 hd78058f_0 hdf5 1.10.6 nompi_he0bbb20_101 conda-forge icu 58.2 ha925a31_3 importlib-metadata 6.7.0 pyha770c72_0 conda-forge importlib_metadata 6.7.0 hd8ed1ab_0 conda-forge intel-openmp 2023.1.0 h57928b3_46319 conda-forge ipykernel 6.24.0 pyh6817e22_0 conda-forge ipython 8.14.0 pyh08f2357_0 conda-forge jedi 0.18.2 pyhd8ed1ab_0 conda-forge jpeg 9e hcfcfb64_3 conda-forge jupyter_client 8.3.0 pyhd8ed1ab_0 conda-forge jupyter_core 5.3.1 py310h5588dad_0 conda-forge lerc 4.0.0 h63175ca_0 conda-forge libblas 3.9.0 17_win64_mkl conda-forge libcblas 3.9.0 17_win64_mkl conda-forge libclang 12.0.1 default_h81446c8_4 conda-forge libdeflate 1.18 hcfcfb64_0 conda-forge libffi 3.4.4 hd77b12b_0 libhwloc 2.9.1 h51c2c0f_0 conda-forge libiconv 1.17 h8ffe710_0 conda-forge liblapack 3.9.0 17_win64_mkl conda-forge libogg 1.3.4 h8ffe710_1 conda-forge libpng 1.6.39 h8cc25b3_0 libprotobuf 3.20.3 h23ce68f_0 libsodium 1.0.18 h8d14728_1 conda-forge libtiff 4.5.0 h8a3f274_0 libvorbis 1.3.7 h0e60522_0 conda-forge libwebp 1.3.1 hcfcfb64_0 conda-forge libwebp-base 1.3.1 hcfcfb64_0 conda-forge libxml2 2.10.3 h0ad7f3c_0 libxslt 1.1.37 h0192164_0 conda-forge lz4-c 1.9.4 hcfcfb64_0 conda-forge matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge mkl 2022.1.0 h6a75c08_874 conda-forge nest-asyncio 1.5.6 pyhd8ed1ab_0 conda-forge numpy 1.25.0 py310hd02465a_0 conda-forge opencv 4.6.0 py310h4ed8f06_3 openssl 1.1.1u hcfcfb64_0 conda-forge packaging 23.1 pyhd8ed1ab_0 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge pcre 8.45 h0e60522_0 conda-forge pickleshare 0.7.5 py_1003 conda-forge pip 23.1.2 py310haa95532_0 platformdirs 3.8.0 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.38 pyha770c72_0 conda-forge prompt_toolkit 3.0.38 hd8ed1ab_0 conda-forge psutil 5.9.5 py310h8d17308_0 conda-forge pthreads-win32 2.9.1 hfa6e2cd_3 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge pygments 2.15.1 pyhd8ed1ab_0 conda-forge python 3.10.9 h966fe2a_2 python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python_abi 3.10 2_cp310 conda-forge pywin32 304 py310h00ffb61_2 conda-forge pyzmq 25.1.0 py310hcd737a0_0 conda-forge qt-main 5.15.2 he8e5bd7_7 qt-webengine 5.15.9 hb9a9bb5_5 qtwebkit 5.212 h2bbfb41_5 setuptools 67.8.0 py310haa95532_0 six 1.16.0 pyh6c4a22f_0 conda-forge sqlite 3.41.2 h2bbff1b_0 stack_data 0.6.2 pyhd8ed1ab_0 conda-forge tbb 2021.9.0 h91493d7_0 conda-forge tk 8.6.12 h2bbff1b_0 tornado 6.3.2 py310h8d17308_0 conda-forge traitlets 5.9.0 pyhd8ed1ab_0 conda-forge typing-extensions 4.7.1 hd8ed1ab_0 conda-forge typing_extensions 4.7.1 pyha770c72_0 conda-forge tzdata 2023c h04d1e81_0 ucrt 10.0.22621.0 h57928b3_0 conda-forge vc 14.2 h21ff451_1 vc14_runtime 14.36.32532 hfdfe4a8_17 conda-forge vs2015_runtime 14.36.32532 h05e6639_17 conda-forge wcwidth 0.2.6 pyhd8ed1ab_0 conda-forge wheel 0.38.4 py310haa95532_0 xz 5.4.2 h8cc25b3_0 zeromq 4.3.4 h0e60522_1 conda-forge zipp 3.15.0 pyhd8ed1ab_0 conda-forge zlib 1.2.13 h8cc25b3_0 zstd 1.5.5 hd43e919_0
错误信息
(Project) C:\Users\LE>python solution.py Traceback (most recent call last): File "C:\Users\LE\solution.py", line 9, in <module> import cv2 ImportError: DLL load failed while importing cv2: The specified module could not be found. (Project) C:\Users\LE>python Python 3.10.9 | packaged by Anaconda, Inc. | (main, Mar 8 2023, 10:42:25) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: DLL load failed while importing cv2: The specified module could not be found. >>> import numpy >>>
解决方法
1. 检查并添加环境变量PATH
CMD激活环境后,OpenCV依赖的DLL路径可能未被加入系统PATH:
- 激活环境后执行
echo %PATH%,确认是否包含C:\Users\LE\.conda\envs\Project\Library\bin(conda环境中OpenCV依赖DLL的存放路径)。 - 若未包含,临时添加:
set PATH=C:\Users\LE\.conda\envs\Project\Library\bin;%PATH%,之后再尝试导入cv2。 - 永久生效可修改conda环境激活脚本:在
C:\Users\LE\.conda\envs\Project\etc\conda\activate.d下新建env_vars.bat,写入set PATH=%CONDA_PREFIX%\Library\bin;%PATH%。
2. 重新安装OpenCV
卸载并重新安装conda版本的OpenCV,确保依赖完整:
conda remove opencv conda install -c conda-forge opencv=4.6.0
3. 验证Python解释器路径
激活环境后执行where python,确认输出路径为C:\Users\LE\.conda\envs\Project\python.exe,避免调用系统或其他环境的Python。
4. 定位缺失的DLL
使用Dependency Walker工具打开C:\Users\LE\.conda\envs\Project\Lib\site-packages\cv2\cv2.pyd,查看具体缺失的DLL文件,再从conda环境的Library\bin中确认是否存在,或安装对应的依赖包。
内容的提问来源于stack exchange,提问作者SHLOK SONI
相关产品推荐
相关产品推荐

