无法找到 zlibwapi.dll。请确保它在您的库路径中

问题描述 投票:0回答:8

我正在开发一个对象检测项目,并希望使用我的 GPU 处理该项目。我已经完成了 NVIDIA 设置教程,一切正常。我的对象检测代码最初与 CPU 一起工作,但是当我添加这两行代码时:

net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)

显示的输出:

无法找到 zlibwapi.dll。请确保它在您的库路径中!

我已经从 cuDNN 网站下载了 zlibwapi.dll zip 文件,解压缩并将整个文件夹添加到我的环境变量路径中。该文件夹名为“zlib123dllx64”,包含“dll_x64”文件夹和“static_x64”文件夹。 “zlibwapi.dll”位于“dll_x64”文件夹内。我已在用户和系统路径变量中添加了“zlib123dllx64”文件夹,但它似乎没有解决任何问题。如何修复此错误并使 GPU 能够使用代码?

我的环境设置:

  • Windows 10
  • 2019 年视觉工作室社区
  • OpenCV Python yolov3
opencv gpu zlib
8个回答
22
投票

Windows环境:

当我尝试运行 TensorRT 示例 int8_caffe_mnist 时,我遇到了“无法找到 zlibwapi.dll。请确保它位于您的库路径中”的问题。确认 TensorRT 正确安装。

按照以下说明进行操作:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#prerequirements-windows

3.1.3下下载zlib并添加路径到环境变量中。 我做了以下事情:

  1. Windows 搜索编辑系统环境变量
  2. 添加库路径,环境变量 -> 路径 -> 编辑 -> C:path to\zlibwapi.dll

结论: 按照将 zlibwapi.dll 添加到路径的说明对我来说不起作用。

对我有用的解决方案:

  1. 删除了环境变量下的库路径
  2. 将 zlibwapi.dll 复制到 C:\Windows\System32 和 C:\Windows\SysWOW64
  3. 删除/保留 zlib123dllx64 文件,我选择删除,因为它不需要库路径的位置

17
投票

我能够在 NVIDIA Nsight 目录中找到丢失的 zlib DLL 的副本:

C:\Program Files\NVIDIA Corporation\Nsight Systems 2022.4.2\host-windows-x64\zlib.dll

我复制并重命名为:

C:\Program Files\NVIDIA GPU 计算工具包\CUDA 11.8 in\zlibwapi.dll

因为它已经在我的 PATH 环境变量中了。这样做解决了我的错误。

我看到了其他答案中链接的 CUDNN 文档中的链接,但我对安全警告有点担心。


3
投票

也偶然发现了这个问题,有一个简单的解决方案立即对我有用:

查看 Nvidia 页面(确切的下载链接) 并下载。

解压文件并找到单个文件“zlibwapi.dll”。将此文件复制到

C:/path to/NVIDIA GPU Computing Toolkit / CUDA/ v11.X / bin -> right here in that folder

只要做了这两步,TF就可以正常使用GPU了。


2
投票

http://www.winimage.com/zLibDll/zlib123dllx64.zip 下载并解压 64 位 Windows 的 zlib 包,然后将 zlibdll 文件复制到 cudnn/bin 中


1
投票

如果有人也遇到和我一样的问题,我设法解决了这个问题。您无需将整个“zlib123dllx64”文件夹调用到系统环境路径中,只需将“dllx64”文件夹内的“zlibwapi.dll”添加到项目文件夹中并将其包含在项目中即可。这解决了我的问题。干杯


0
投票

在bin中没有找到zlibwapi.dll,但无论如何解决了它。

因为我没有它

C:\Program Files\NVIDIA GPU 计算工具包\CUDA 11.2\

我无法更改环境变量,但我在其他地方找到了它。

mhartlove在这里建议:

https://forums.developer.nvidia.com/t/could-not-load-library-cudnn-cnn-infer64-8-dll-error-code-193/218437/17

解决方案:

“我发现 64 位 zlibwapi.dll 的副本隐藏在不同的名称中: C:\Program Files\NVIDIA Corporation\Nsight Systems 2022.4.2\host-windows-x64\zlib.dll

我将其复制并重命名为: C:\Program Files\NVIDIA GPU 计算工具包\CUDA 11.8 in\zlibwapi.dll

因为该文件夹已经在我的 PATH 变量中;它起作用了。结果 CUDA 工具包已经有您在其他地方需要的文件。如果他们只是对 CUDA 工具包安装程序进行更改,似乎可以省去很多麻烦。 ”


0
投票

请勿从随机网站下载 zip 文件,因为它们可能包含恶意代码。

我不知道为什么 nvidia 要把它隐藏得那么好,但这里有一个官方答案,其中包含对我有用的匹配下载:


-1
投票

我从https://www.dllme.com/getfile.php?file=38308&id=9b45296e316cdf31b9bace739e22ca7a

下载了dll文件

提取出来了

see here

更名 zlibwapi_x64.dll -> zlibwapi.dll

并将其粘贴到我的 CUDA 的垃圾箱中

Look at the last file

这对我有用......

© www.soinside.com 2019 - 2024. All rights reserved.