Modulenotfounderror: no module named torchtext.legacy error occurs because of directory structure change after 0.10.0 torchtext release. There is a different code/package structure in the latest torchtext module. All the functionality is preserved in the latest code but we have to import the same differently. Also in some scenarios, this error is not because of code structure change but due to improper installation of torchtext and underline packages. Well in this article, we will resolve all of them step-wise. So let’s begin.
What is ModuleNotFoundError ?
There are many cases when you are using some specific package in your python code. And when you run the code then you will get the ModuleNotFoundError. There are many cause of it and the most of the case it is that you have not installed the package in your system. For example suppose you are getting the error ModuleNotFoundError: No module named X, then it means that the Module X has not been installed in your system.
Modulenotfounderror: no module named torchtext.legacy ( Solution) –
As we are already clear with the root cause for this error. Hence we will directly jump into the solutioning part. Also, make sure to understand the pros and cons of each solution.
Solution 1: Organizing import Statements –
Since the internal code structure is changing. Hence we need to align our import statement accordingly. Here is the change we need to accomplish.
Correct Imports –
from torchtext import data, datasets
from torchtext.vocab import Vocab
Incorrect Imports –
from torchtext.legacy import data, datasets
from torchtext.legacy.vocab import Vocab
Solution 2: Downgrade torchtext version –
The above Incorrect imports work properly in the lower version of torchtext (0.10.0 or lower ). Because these versions have the same directory structure. We will use the pip package manager to downgrade torchtext module. Here is the command for that-
pip install torchtext==0.10.0
It will install the lower version of torchtext. As we have provided 0.10.0 but you can provide any other lower version less than 0.10.0. The only challenge in downgrading torchtext is incompatibility with other modules. If we are using any higher version syntax of torchtext then we downgrade this. It will fix the problem of imports but can create multiple other issues. It is not the case always because most of the releases provide backward compatibility.
We can use any other package manager like conda easy_install to upgrade or downgrade torchtext in the place of pip too. Please read below articles for more info.
Data Science Learner Team
Join our list
Subscribe to our mailing list and get interesting stuff and updates to your email inbox.