解决OSError: [WinError 127] 找不到指定的程序。 Error loading “\c10_cuda.dll“ or one of its dependencies.

一、解决方式:(可先直接尝试第三步)

解决方式:pyg-team/pytorch_geometric: Graph Neural Network Library for PyTorch (github.com)

安装额外的包时需要注意版本:使用以下命令进行安装:

pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.3.0+${CUDA}.html         其中torch-2.3.0需要替换成自己的torch版本号,${CUDA}替换为自己的cuda版本号。

比如我的torch是2.3.0,cuda是12.1版本:

pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.3.0+cu121.html

二、产生这个错误的原因:

经过查看报错信息的“OSError: [WinError 127] 找不到指定的程序。 Error loading "F:\anaconda\envs\env_3D_scene\lib\site-packages\torch\lib\c10_cuda.dll" or one of its dependencies.”发现沿着这个路径能够找到这个dll文件,所以是找不到相关的依赖产生的问题。

经过以下的操作我也验证了以上猜测:

①我经过debug调试报错的文件,发现打开文件返回值是none,并且错误代码返回的是127。我就执行了②的代码,看看这个文件是不是找不到。

②经过运行下面的代码,发现显示的是能够成功加载这个文件。

import ctypes
import os

dll_path = r"F:\anaconda\envs\env_3D_scene\lib\site-packages\torch\lib\c10_cuda.dll"

if os.path.exists(dll_path):
    try:
        ctypes.WinDLL(dll_path)
        print("DLL loaded successfully.")
    except OSError as e:
        print(f"Error loading DLL: {e}")
else:
    print("DLL file does not exist.")

③我又使用depends,查找是不是缺乏依赖项。报了下面了依赖性缺失:

我一开始认为是直接使用conda create -n 老环境 --clone 新环境  这个命令复制的虚拟环境,导致torch的目标环境缺少这些相关依赖项。经过排查,发现是下载pytorch_geometric过程产生的问题,我只是单纯在anaconda.org复制了pytorch_geometric的下载命令,但是经过我在虚拟环境中重装torch,还是会报这个错误。所以就想到了是不是pytorch_geometric安装的问题,就找到了上面的pytorch_geometric官方实现。

三、如果还不行,就重新装Pytorch。但是由于我使用的是conda create -n 老环境 --clone 新环境这个命令复制的有虚拟环境,经过测试后,装了torch老的虚拟环境的解释器不会报错,所以我就把老的虚拟环境里的torch复制到了新的虚拟环境中的指定文件夹下,我的新的虚拟环境路径是“F:\anaconda\envs\env_3D_scene\lib\site-packages\”,就把老的torch文件夹中的torch文件夹复制到这个文件夹下,发现不会报这种错误。

  • 38
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值