Windows11安装DGL

为了学习使用OpenHGNN,需要安装DGL,但是按照官网的方法安装就是无法正常运行,于是找了一天的方法,总算是解决了

环境配置

我的环境是Windows11的系统,显卡是笔记本的4070显卡,所以安装了最新的驱动和CUDA12.6,CUDA的版本直接安装最新的即可,是向下兼容的
python 版本是3.12.8,注意目前最新的python版本不支持DGL,最高只支持3.12的版本

报错原因

报错信息我碰到的有如下两个

1
FileNotFoundError: Cannot find DGL C++ graphbolt library at D:\HGNN\code\.venv\Lib\site-packages\dgl\graphbolt\graphbolt_pytorch_2.4.1.dll

这个报错的原因是DGL的安装包中缺少了graphbolt_pytorch_2.4.1.dll这个文件,而之所以缺少这个文件是因为DGL从2024年6月27日开始不支持Windows的最新版本更新了,所以这个文件在安装的时候就是不存在的,当然报错

1
ModuleNotFoundError: No module named 'torchdata.datapipes'

这个的原因是TorchData不再维护datapipes了,所以如果没有碰到上面的报错,就可能碰到这个报错

解决方法

解决方法有两个

方法一

使用Linux,这样肯定不会有这个报错了,一劳永逸

方法二

安装老版本的DGL
为了安装老版本的DGL,pytorch的版本也需要降级,可以去pytorch官网找到老版本安装,使用如下命令可以安装pytorch2.2.1版本

1
pip install torch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 --index-url https://download.pytorch.org/whl/cu121

然后使用如下命令安装DGL

1
pip install  dgl -f https://data.dgl.ai/wheels/cu121/repo.html

安装完成后别急,还可能碰到TorchData的报错,解决方法是降级TorchData

1
pip install torchdata==0.7.1

安装完这些后还可能碰到缺少pydantic的问题,安装一下即可

1
pip install pydantic

至此,DGL就安装成功了,可以测试一下

1
2
3
4
5
import dgl
import torch

print(dgl.__version__)
print(torch.__version__)

输出可以看到正常的版本信息


搞了一下午,刚开始还以为很简单的,按照官网的方法安装很快就可以安装好的,没想到还是碰到了各种各样的问题
希望以后能别再遇到这样的问题了,记录下来以备以后需要