关于 OpenCV+CUDA 在 Win11 编译安装

2021-11-21 00:00:50 +08:00
 zouri

环境描述 CPU 5800x ,GPU 750Ti ,CUDA 11.5 ,Win11 ,OpenCV4.5.4 弄了好几天了,不太确定是不是 win11 的问题,编译是都通过了,但是 cv2 包导入不成功,确实对 win 没啥经验,不知道有没 CV 的大佬帮助一下小弟

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python\Python310\lib\site-packages\cv2\__init__.py", line 183, in <module>
    bootstrap()
  File "C:\Python\Python310\lib\site-packages\cv2\__init__.py", line 155, in bootstrap
    native_module = importlib.import_module("cv2")
  File "C:\Python\Python310\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: DLL load failed while importing cv2: 找不到指定的模块。
3433 次点击
所在节点    Python
21 条回复
hbtech
2021-11-21 00:15:06 +08:00
试试
from cv2 import cv2
zouri
2021-11-21 00:22:17 +08:00
@hbtech 还是一样的错
Jakarta
2021-11-21 00:47:34 +08:00
楼主的 opencv 是按照这里的文档编译的吗? https://docs.opencv.org/4.5.4/d5/de5/tutorial_py_setup_in_windows.html
ruxuan1306
2021-11-21 01:01:55 +08:00
传说学术圈都是 ubuntu ,试试 wsl2 的 ubuntu
ysc3839
2021-11-21 01:27:23 +08:00
试试 Miniconda?
jinliming2
2021-11-21 09:01:48 +08:00
看提示是加载 dll 失败,应该是编译的 dll 没装到指定的路径下。你可以根据你给出的错误调用栈,第二行那个文件的 183 行看看是怎么加载的,看看能不能得出更多信息
zouri
2021-11-21 09:43:32 +08:00
zouri
2021-11-21 09:44:18 +08:00
@ruxuan1306 好像不能用 gui ,不太确定
zouri
2021-11-21 09:46:33 +08:00
@ysc3839 我研究研究
zouri
2021-11-21 09:54:20 +08:00
@jinliming2 看代码使用`native_module = importlib.import_module("cv2")`就报错了,有没有什么办法知道他加载那个 dll 失败的
thinkershare
2021-11-21 12:25:30 +08:00
我建议你使用 WS2, 不要在 Windows 上折腾机器学习, 太多库又兼容性问题了!
shm7
2021-11-21 17:54:04 +08:00
搞不明白,为啥都这么喜欢在封闭不容易配置的环境下面做配置,特别是新手。

我带人,第一件事,就是放弃 Windows 作为开发环境,或者你滚蛋。
jinliming2
2021-11-21 19:13:35 +08:00
参考:
https://github.com/opencv/opencv/issues/16500
https://github.com/opencv/opencv/commit/450b96510e2c6fd2921da1fe2893945c5234a54f

应该是 windows 上的 python3.8+ dll 加载路径不读环境变量了。
按照 commit 的内容,设置环境变量 CUDA_PATH 为你 opencv 的路径即可。应该会自动查找 CUDA_PATH 下的 bin 目录。

或者你按照上面那个 issue 里说的,放到 python 的安装目录下?(不推荐)
jinliming2
2021-11-21 19:17:16 +08:00
令:设置环境变量后建议重启系统,然后开 powershell 运行 echo $env:CUDA_PATH 或者开 cmd 运行 echo %CUDA_PATH% 确认配置生效
zouri
2021-11-22 15:37:12 +08:00
@shm7 哈哈老哥别生气,本职工作不是做视觉的,工作的电脑是个 mac ,这是台打游戏的想学习学习这方面的东西但是感觉搞个双系统太麻烦
zouri
2021-11-22 15:38:05 +08:00
@jinliming2 多谢,我下班回去试试
zouri
2021-11-22 15:39:36 +08:00
@thinkershare 研究了一下,搞 Xserver 还是有点麻烦
zouri
2021-11-22 21:28:31 +08:00
@jinliming2 我发现我这个的 config.py 文件已经加上了 CUDA_PATH 的路径了
zouri
2021-11-22 21:29:33 +08:00
不整 win11 了,换回 win10 ,还有一些其他软件也有 bug ,右键也受不了
ruxuan1306
2021-11-23 01:02:00 +08:00
@zouri #19 win11 的 wsl2 默认支持 gui

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/816858

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX