首页 > 解决方案 > 编译的 opencv 4.5.1 仅适用于(windows)anaconda - 为什么?

问题描述

我一直在尝试在我的 Windows 10 机器上安装支持 cuda 的 opencv 4.5.1。遵循 https://jamesbowley.co.uk/accelerate-opencv-4-5-0-on-windows-build-with-cuda-and-python-bindingshttps://haroonshakeel.medium.com/build上的指南-opencv-4-5-1-with-gpu-cuda-support-on-windows-10-without-tears-cf0e55dc47f9

我让它在 Anaconda 环境下工作,但我想尝试从混合中消除 Anaconda,所以我在不使用 Anaconda 环境的情况下重新创建(制作和构建/安装),结果不起作用。它得到

ImportError: DLL load failed while importing cv2: The specified module could not be found.

我已经将生成的 cv2.cp38-win_amd64.pyd 输入Dependencies并且dependency walker没有任何东西跳出旧的依赖步行者只找到了 2 个没有路径的模块,HVSIFILETRUST.DLL IESHIMS.DLL但这些模块也仍然存在于工作版本中。(除了 API-MS-WIN-* 和 EXT-MS-WIN 的所有内容)较新的依赖项似乎没有发现任何有用的东西。

两个世界都在使用 Pyhon 3.8

Non-Anaconda = Python 3.8.10 (tags/v3.8.10:3d8993a, May  3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)] on win32
Anaconda = Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

使用 James 故障排除技巧https://jamesbowley.co.uk/accelerate-opencv-4-5-0-on-windows-build-with-cuda-and-python-bindings/#troubleshooting

where opencv_world451.dll
where opencv_img_hash451.dll
where nppc64_11.dll
where cudnn64_8.dll

所有报告有效模块和完全相同的模块报告进出 Anaconda 环境

我的理论是在 Anaconda 的“环境”中有一些东西,可能是 Python 环境使它能够python -m pip list工作(大约 215 件事)和help("modules")显示的内容。在 anaconda env 中只有 700 多个,而在我正常的非 anaconda 世界中只有 315 个,因此需要整理超过 400 个模块/包。然后很多这些东西显然不能被删除 - 例如整个“大脑”模块集,不知道它们做了什么,但它们的名字让他们怀疑

Haroon 的帖子似乎只在 Anaconda 下工作,但没有理由这样做。这似乎只是个人喜好。

有任何想法吗 ?谢谢JC

好吧我放弃了。这大约是 20 个构建,包含 OpenCV 版本、Python 版本、有和没有静态库的构建、有和没有“世界”的所有不同组合。安装了 anaconda 但未使用,并且完全卸载了 anaconda。结果总是一样的

import cv2
    ImportError: DLL load failed while importing cv2: The specified module could not be found.

那是在没有Anaconda的情况下重新构建 Open-CV 的任何尝试都失败了。当您在 Dependancies 中查看生成的文件(类似于“cp38-win_amd64.pyd”)时,除了 windows 树深处的一些晦涩的东西外,没有丢失的模块

所以它不想玩,也不会让我进入它的秘密,所以我将不得不在没有 CUDA 的情况下生活,那 2304 个 cuda 核心将被浪费!但我想得越多,我就越不希望 Anaconda 在本质上是我的办公室计算机上。JC

标签: pythonopencvbuildanaconda

解决方案


推荐阅读