OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll

举报
皮牙子抓饭 发表于 2023/11/28 09:52:20 2023/11/28
【摘要】 OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'.如果你在使用Python开发时遇到了类似的错误消息,例如OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll',那么你可能是在尝试使用CUDA相关的功能,但缺少了相应的CUDA运行时库文...

OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'.

如果你在使用Python开发时遇到了类似的错误消息,例如OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll',那么你可能是在尝试使用CUDA相关的功能,但缺少了相应的CUDA运行时库文件。

问题描述

这个错误通常会出现在使用GPU加速的机器学习库,如TensorFlow或PyTorch等,尤其是在Windows操作系统上。它表示缺少了名为cudart64_90.dll的CUDA运行时库文件,这是CUDA(Compute Unified Device Architecture)的一部分,提供了与GPU通信和计算的功能。

解决方案

要解决这个问题,我们需要确保正确安装和配置了CUDA运行时环境,以便Python能够找到所需的库文件。 以下是解决方案的步骤:

1. 检查CUDA安装

首先,确保已经正确安装了CUDA。可以在NVIDIA的官方网站上找到适合自己系统的CUDA版本,并按照安装指南进行安装。在安装过程中,请确保选择了安装CUDA运行时(CUDA Runtime)。

2. 确认CUDA路径配置

打开命令提示符窗口,并输入以下命令来确认CUDA的安装路径:

plaintextCopy code
nvcc --version

这个命令应该能够显示CUDA的版本信息和相关路径。确保CUDA_PATH环境变量已正确设置,并指向CUDA的安装路径。

3. 拷贝缺失的DLL文件

如果之前安装了CUDA,但仍然遇到了缺少cudart64_90.dll的错误,可能是因为该文件没有正确复制到系统路径中。解决方法是手动拷贝该文件到系统路径中。在大多数情况下,该文件应该位于CUDA的安装目录下的bin文件夹中。 找到cudart64_90.dll文件并将其复制到以下目录之一:

  • 如果你使用的是32位Python,则将该文件复制到C:\Windows\System32目录下。
  • 如果你使用的是64位Python,则将该文件复制到C:\Windows\SysWOW64目录下。

4. 更新系统路径

最后,确保系统路径已经更新,包含了CUDA的安装目录。这样Python在运行时就能够找到所需的DLL文件。 可以通过以下步骤更新系统路径:

  1. 右键点击“计算机”或“This PC”,然后选择“属性”。
  2. 点击“高级系统设置”。
  3. 在“系统属性”对话框中,点击“环境变量”按钮。
  4. 在“系统变量”部分,找到名为Path的变量,并点击“编辑”按钮。
  5. 添加CUDA的安装目录到Path变量中。例如,如果CUDA安装在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin目录下,则将C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin添加到Path变量中。

5. 重启Python环境

完成以上步骤后,请重新启动Python环境,以确保配置的更改生效。

结论

OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'错误通常表示缺少CUDA运行时库文件,这是使用GPU进行加速的机器学习库所需的。通过正确安装和配置CUDA环境,并将缺失的DLL文件复制到系统路径中,可以解决这个问题。如果你仍然遇到问题,请确保遵循正确的安装指南,并参考相关文档和社区支持资源,以获取进一步的帮助和支持。 希望本文能够帮助你理解和解决这个问题。谢谢阅读!


当我们在使用深度学习框架如TensorFlow时,通常会使用CUDA来加速计算。当我们在Windows系统上进行GPU加速时,可能会遇到找不到cudart64_90.dll的错误。 下面是一个示例代码,演示了如何解决这个问题。

pythonCopy code
import os
import shutil
# 定义cuda_lib_path为CUDA安装目录下的bin文件夹路径,根据实际安装路径进行修改
cuda_lib_path = "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/bin"
# 获取cudart64_90.dll文件的完整路径
dll_file_path = os.path.join(cuda_lib_path, "cudart64_90.dll")
# 定义系统路径
sys_path = ""
# 判断Python版本(32位/64位)
if os.name == "nt" and os.environ.get("PROCESSOR_ARCHITECTURE", "") == "x86" and os.environ.get("PROCESSOR_ARCHITEW6432", "") == "":
    # 32位Python
    sys_path = "C:/Windows/System32"
else:
    # 64位Python
    sys_path = "C:/Windows/SysWOW64"
    
# 将cudart64_90.dll复制到系统路径
shutil.copy2(dll_file_path, sys_path)

该示例代码中,我们首先定义了cuda_lib_path变量,其值为CUDA安装目录下的bin文件夹路径。然后,使用os.path.join()函数获取了cudart64_90.dll文件的完整路径。 接下来,我们定义了sys_path变量来表示系统路径,根据Python的位数(32位/64位)确定了具体的路径。然后,使用shutil.copy2()函数将cudart64_90.dll文件复制到系统路径中。 通过执行这段代码,我们可以将缺失的DLL文件复制到系统路径中,从而解决OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'错误。 请注意,在实际应用中,你需要根据你的CUDA安装路径和Python环境进行相应的调整。 希望这个示例代码能够帮助你解决问题。


cudart64_90.dll是NVIDIA CUDA Runtime库的一个核心动态链接库文件。CUDA是NVIDIA开发的一种并行计算平台和编程模型,可用于利用GPU的并行计算能力加速计算任务。该库文件是CUDA 9.0版本的运行时库,针对于64位操作系统。 CUDA Runtime库是一个软件库,提供了GPU计算的运行时环境和支持库函数,使开发人员能够在GPU上运行并行计算任务。这些库函数包含了GPU计算所需的各种操作和功能,如内存管理、核函数启动、线程同步、错误处理等。cudart64_90.dll是其中一个库文件,包含了CUDA的运行时函数的实现,并提供了与CUDA C/C++编程接口进行交互的能力。 通过将cudart64_90.dll复制到系统路径中,可以让使用CUDA的应用程序或深度学习框架如TensorFlow、PyTorch等能够找到并使用该库文件。这样,应用程序就能够利用GPU的并行计算能力,加速计算任务的运行速度。 需要注意的是,cudart64_90.dll是特定版本的CUDA Runtime库文件,适用于CUDA 9.0版本和64位操作系统。如果你的CUDA版本不同,或者你的操作系统位数不同,你需要使用相应版本的库文件。此外,确保你的系统环境配置正确,能够正确加载并使用cudart64_90.dll文件。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。