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

17
我正在进行一个目标检测项目,并希望使用我的显卡来处理该项目。我已经完成了NVIDIA安装教程,一切正常。我的目标检测代码最初是使用CPU工作的,但是当我添加了以下两行代码:
net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)

显示的输出:

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

我已经从cuDNN网站下载了所述的 zlibwapi.dll 压缩文件,然后解压并将整个文件夹添加到我的环境变量路径中。文件夹名为“zlib123dllx64”,包含一个 “dll_x64” 文件夹和一个“static_x64” 文件夹。 “zlibwapi.dll” 位于“dll_x64”文件夹中。我已将“zlib123dllx64”文件夹添加到用户和系统路径变量中,但好像没有解决任何问题。我该如何解决此错误并使GPU与代码一起正常工作?

我的环境设置:

  • Windows 10
  • Visual Studio Community 2019
  • OpenCV Python yolov3
8个回答

25
我找到了缺失的zlib DLL文件的副本,位于NVIDIA Nsight目录下: C:\Program Files\NVIDIA Corporation\Nsight Systems 2022.4.2\host-windows-x64\zlib.dll
我将其复制并重命名为: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin\zlibwapi.dll 因为它已经在我的PATH环境变量中了。这样做解决了我的错误。
我看到了链接到其他答案中的CUDNN文档中的链接,但我对安全警告有些担忧。

这是因为当前的WinImage下载链接没有内置的DLL,所以无法正常工作。 - Bob Kimani
这个可行,我把它放到了同一个位置上的各种CUDA版本中,其中一个似乎可以用。 - David McGowan

23

Windows环境:

我尝试运行TensorRT示例int8_caffe_mnist时,遇到了“找不到zlibwapi.dll。请确保它在您的库路径中”这个问题,为确认TensorRT的正确安装。

按照以下链接的说明操作:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#prerequisites-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文件,我选择删除,因为它不需要作为库路径的位置

你救了我,这对我很有效。 如果只下载zilwapi.dll,此URL更直接:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#install-zlib-windows - John Wu
Chrome无法通过Nvidia网站上的"ZLIB DLL"链接进行下载。我不得不右键点击链接并选择"另存为..."。此外,环境变量是路径。你应该将一行添加到系统路径环境变量中,即"C:\Path\To\ZLIB\dll_x64",该文件夹包含zlibwapi.dll。然后你可以打开cmd并输入zlibwapi.dll,它会报告该文件不可执行,这意味着它已被找到。 - JoseOrtiz3

4

我也遇到了这个问题,不过有一个很简单的解决方法:

请查看NVIDIA的页面(下载链接)并下载。

解压文件,找到单个文件“zlibwapi.dll”,将该文件复制到

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

我刚刚完成了这两个步骤,现在TF可以正常使用GPU。


2

2
如果有人和我一样遇到了同样的问题,我已经解决了这个问题。不要把整个“zlib123dllx64”文件夹添加到系统环境路径中,只需将“dllx64”文件夹中的“zlibwapi.dll”添加到您的项目文件夹中,并在项目中包含它即可。这解决了我的问题。干杯

你能简要解释一下吗? - Vivek
当.exe文件在同一文件夹中时,使用Ctrl-C和Ctrl-V。 - Radek

2

在bin中没有找到zlibwapi.dll,但还是解决了它。

由于我没有在

C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v11.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 Computing Toolkit\CUDA\v11.8\bin\zlibwapi.dll
因为该文件夹已经在我的PATH变量中;这样就可以解决问题了。原来CUDA工具包已经在其他地方拥有所需的文件。如果他们只是对CUDA工具包安装程序进行更改,那么似乎可以节省很多麻烦。

0

-1

4
从随机的"dllme.com"网站下载可执行文件是一个严重的安全风险。我不建议这样做。 - Christoph Rackwitz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接