ImportError: cannot import name ‘Field‘ from ‘torchtext.data‘, No module named “legacy“

这些都是在下载最新的torchtext后出现的问题,问题如标题,在torchtext.data里面并没有Field方法,以及通过别的博主在data前加了legacy却发现没有legacy模块。

1 问题解释

出现这些问题是因为torchtext过新,这一点在github官网里给出了解释:
在这里插入图片描述
也就是说:在torchtext 0.11版本中field方法被移到了torchtext.legacy下,所以会看到其他博客的评论区里出现下面代码适用的情况:

from torchtext.legacy.data import field

但是在torchtext 0.12.0版本中legacy目录和field方法都没了,所以上面的代码无法再适用,会报错。

2 解决办法

唯一的解决方法是下载低版本的torchtext,要注意torchtexttorch的版本是对应的,在更新它之前最应该把torch也降级成对应的版本,版本对应如下:
在这里插入图片描述
安装低版本的torchtext

conda install -c pytorch torchtext==版本号

安装低版本的pytorch:在pytorch官网找对应的版本下载指令。

3 注意事项

首先,如果是复现别人的代码应该问清楚别人当时使用的版本是多少,因为torchtext版本与版本之间太不同了,我降低了一次之后又出现了别的问题,只能去看作者使用的版本是多少再降级。直到最后我的torch版本是1.7torchtext版本是0.4.0,虽然并没有对应上但是神奇的跑通了。

其次,我在安装低版本的torchtext后用pip list或者conda list发现torchtext并没有降级,这时候我们可以使用下面的代码,先把原来的删了,然后再装新的:

pip uninstall torchtext
  • 31
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
No module named 'torchtext.legacy' 错误通常表示在导入torchtext.legacy模块时发生了错误。这个错误可能是由于以下几种原因引起的: 1. 模块未安装:你需要确保你已经正确安装了torchtext模块。你可以使用pip命令来安装torchtext模块。例如,你可以运行以下命令来安装最新版本的torchtext: ```python pip install torchtext ``` 2. 模块版本不兼容:如果你的代码使用的是旧版本的torchtext,而你安装的是最新版本,那么可能会出现这个错误。你可以尝试安装一个与你的代码版本匹配的特定版本的torchtext。例如,如果你的代码需要torchtext.legacy模块,你可以安装对应的版本: ```python pip install torchtext==0.9.0 ``` 3. 模块名错误:检查你的代码中是否正确引用了torchtext.legacy模块。确保你的代码中没有拼写错误或者其他语法错误。 如果你已经尝试了上述方法仍然无法解决问题,你可以考虑更新你的代码以适应最新版本的torchtext,或者寻求进一步的帮助和支持,比如在相关的开发者论坛上提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [成功解决ModuleNotFoundError: No module namedtorchtext.legacy](https://blog.csdn.net/qq_41185868/article/details/129722608)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Bug小能手系列(python)_4:ModuleNotFoundError: No module namedtorchtext.legacy](https://blog.csdn.net/qq_36758270/article/details/130209838)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值