安装d2l包出现的所有问题

每台电脑都不一样,别人的方法不一定适用于你的电脑,但这也使分享更重要。

出于某些原因,我的Windows不得不保持中文用户名,这不是我的错,只是我需要为此承担后果。

最近老师让我们使用d2l库来跑一个深度学习代码,老师知道安装这个包会有错误,给了我们适配Python3.8的解压使用的包,不过后来它也没有奏效,只是让我在创建新环境时选择了3.8尝试。

有件事我要先提:如果使用Pycharm,可以相信IDE提供的解决方案,让它帮你安装d2l库。我使用的是vscode,使用Anaconda的终端来配置环境,conda命令以前还能用,不知道现在怎么不能用了,我就都使用pip了,如果你们的conda命令有效,优先conda安装。

另外,在遇到报错常用方法我就不多说,缺少库就使用pip安装一下,安装问题可以尝试更新pip,vscode在你尝试修复后还是不管用,可能需要重新打开软件,或者重启电脑甚至关机再启动。

我使用库的代码为:

import torch
from torch import nn
import torch.nn.functional as F
from d2l import torch as d2l

下面讲我在安装时遇到的所有问题:

第一次自己pip安装时遇到一个简单的问题:

ERROR: Could not install packages due to an OSError: [WinError 5] 拒绝访问。

此时我的python还是3.7,使用pip安装时自动选择了0.17.6版本,但安装的最后失败了,由于系统权限的问题,解决方法很简单,使用:

pip install d2l --user

会出现成功安装(可能有无关紧要的Warning),实践可以正常使用。

但我此时的torch还是cpu版本,我想使用gpu来跑,于是换了我之前新创的环境,python为3.11,直接安装d2l后就出现了第一个网上最容易搜到的错误:

AttributeError: module 'd2l.torch' has no attribute 'load_data_time_machine'

pip直接会给你安装你能用的最新的库,很遗憾这个函数在高版本的库这么引用就失败了。解决方案是安装0.17.5版本的d2l:

pip install d2l==0.17.5

如果安装成功并正常使用,恭喜!

安装后我还出现了错误:

ModuleNotFoundError: No module named 'torchtext'

直接使用pip安装可能会报这样的错:

OSError: [WinError 127] 找不到指定的程序。

这就是由于torchtext版本不对,或者说是torch不对,这两位版本必须对应,毕竟python更新常常大改变量名。torchtext目前最高0.18.0,需要torch版本2.3.0,而我直接装最新的2.6.0,其实根本没得用。这里引用一下版本对应吧,根据自己torch安装对应的torchtext就可以了:


 

这里还要提醒一下,如果已经是高版本gpu的torch了,不要直接指定低版本安装torchtext,它可能会帮你安装匹配的torch,那样会装成cpu版本,最好还是先torch再找对应torchtext。

当然可能上一步安装低版本完全没有成功,这就是我遇到的最大问题,而且网上解决方案没有用。

可能你安装后会出现很大一坨五颜六色的报错(我就不粘成五颜六色了):

Preparing metadata (pyproject.toml) ... error

error: subprocess-exited-with-error × Preparing metadata (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [6 lines of output]

Cargo, the Rust package manager, is not installed or is not on PATH.

This package requires Rust and Cargo to compile extensions.

Install it through the system's package manager or via https://rustup.rs/

Checking for Rust toolchain....

[end of output] note: This error originates from a subprocess, and is likely not a problem with pip.

error: metadata-generation-failed × Encountered error while generating package metadata. ╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.

hint: See above for details.

出现这种错误后,会有很有意思的事情,我导入d2l库它不再报错了,但是它也找不到我的d2l库,我甚至遇到我的vscode知道那个函数的内容,却在使用时仍然出现报错:

AttributeError: module 'torch' has no attribute 'load_data_time_machine'

这不再是同一个报错了,它变成了找不到torch中的函数!如果你现在立即更换编译器,它甚至可能会认为你根本就没有torch库!这坑了我好久用来重装torch。

实际上就是那大段报错说的,你根本就没安装好。

如何解决呢?

根据报错信息中说的,rust错误了,点击提供的网站进去安装一下可能就好了。如果这么做你好了,那么恭喜!

不过这个东西好好的怎么会丢呢?果然不是这么简单。我在运行Rust的安装时他出现了无关紧要的Warning,但我注意到它要在我关闭后主动添加PATH,有点不对劲,我是中文用户名......

果然出现问题,我安装了几下都没有解决这大段报错,于是我去翻看路径,它的确在我的用户环境变量中添加了.cargo/bin的path,但系统环境变量中没有,由于我的虚拟环境又是安装在了D盘的Anaconda/envs/中,很有可能不好用。

于是我尝试了在虚拟环境中激活这条路径:

Anaconda Prompt 激活你的虚拟环境后:(虚拟环境名) D:\假如是你的路径 >

set PATH=C:\Users\你的用户名\.cargo\bin;%PATH%

问题解决了!此外,我的cpu其实并没有跑出来,有点遗憾,希望大家成功哦。

有什么想说的欢迎讨论哦。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值