V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zouri
V2EX  ›  Python

关于 OpenCV+CUDA 在 Win11 编译安装

  •  
  •   zouri · 2021-11-21 00:00:50 +08:00 · 3427 次点击
    这是一个创建于 1123 天前的主题,其中的信息可能已经有所发展或是发生改变。

    环境描述 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: 找不到指定的模块。
    
    21 条回复    2021-11-23 09:58:59 +08:00
    hbtech
        1
    hbtech  
       2021-11-21 00:15:06 +08:00
    试试
    from cv2 import cv2
    zouri
        2
    zouri  
    OP
       2021-11-21 00:22:17 +08:00
    @hbtech 还是一样的错
    Jakarta
        3
    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
        4
    ruxuan1306  
       2021-11-21 01:01:55 +08:00
    传说学术圈都是 ubuntu ,试试 wsl2 的 ubuntu
    ysc3839
        5
    ysc3839  
       2021-11-21 01:27:23 +08:00
    试试 Miniconda?
    jinliming2
        6
    jinliming2  
       2021-11-21 09:01:48 +08:00 via iPhone
    看提示是加载 dll 失败,应该是编译的 dll 没装到指定的路径下。你可以根据你给出的错误调用栈,第二行那个文件的 183 行看看是怎么加载的,看看能不能得出更多信息
    zouri
        7
    zouri  
    OP
       2021-11-21 09:43:32 +08:00
    zouri
        8
    zouri  
    OP
       2021-11-21 09:44:18 +08:00
    @ruxuan1306 好像不能用 gui ,不太确定
    zouri
        9
    zouri  
    OP
       2021-11-21 09:46:33 +08:00
    @ysc3839 我研究研究
    zouri
        10
    zouri  
    OP
       2021-11-21 09:54:20 +08:00
    @jinliming2 看代码使用`native_module = importlib.import_module("cv2")`就报错了,有没有什么办法知道他加载那个 dll 失败的
    thinkershare
        11
    thinkershare  
       2021-11-21 12:25:30 +08:00
    我建议你使用 WS2, 不要在 Windows 上折腾机器学习, 太多库又兼容性问题了!
    shm7
        12
    shm7  
       2021-11-21 17:54:04 +08:00
    搞不明白,为啥都这么喜欢在封闭不容易配置的环境下面做配置,特别是新手。

    我带人,第一件事,就是放弃 Windows 作为开发环境,或者你滚蛋。
    jinliming2
        13
    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
        14
    jinliming2  
       2021-11-21 19:17:16 +08:00
    令:设置环境变量后建议重启系统,然后开 powershell 运行 echo $env:CUDA_PATH 或者开 cmd 运行 echo %CUDA_PATH% 确认配置生效
    zouri
        15
    zouri  
    OP
       2021-11-22 15:37:12 +08:00
    @shm7 哈哈老哥别生气,本职工作不是做视觉的,工作的电脑是个 mac ,这是台打游戏的想学习学习这方面的东西但是感觉搞个双系统太麻烦
    zouri
        16
    zouri  
    OP
       2021-11-22 15:38:05 +08:00
    @jinliming2 多谢,我下班回去试试
    zouri
        17
    zouri  
    OP
       2021-11-22 15:39:36 +08:00
    @thinkershare 研究了一下,搞 Xserver 还是有点麻烦
    zouri
        18
    zouri  
    OP
       2021-11-22 21:28:31 +08:00
    @jinliming2 我发现我这个的 config.py 文件已经加上了 CUDA_PATH 的路径了
    zouri
        19
    zouri  
    OP
       2021-11-22 21:29:33 +08:00
    不整 win11 了,换回 win10 ,还有一些其他软件也有 bug ,右键也受不了
    ruxuan1306
        20
    ruxuan1306  
       2021-11-23 01:02:00 +08:00
    @zouri #19 win11 的 wsl2 默认支持 gui
    shm7
        21
    shm7  
       2021-11-23 09:58:59 +08:00
    @zouri 750Ti 真没有必要浪费时间整这些。你用 mac 也不太可能在 mac 上装 cuda 呀。老老实实 CPU 版本。最简单的(基本没有不这么干的)是远程连接带 GPU 的服务器。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3122 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:16 · PVG 21:16 · LAX 05:16 · JFK 08:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.