
When you use the Natural Language Toolkit (NLTK) in your Python code, you might get the following error:
NameError: name 'nltk' is not defined
This error occurs because Python can’t find the nltk module in your current environment.
The following tutorial shows examples that cause this error and how to fix them.
1. You forget to install the nltk module
Before you try anything else, make sure that nltk is installed by running one of the following commands:
pip install nltk
# If you have pip3:
pip3 install nltk
# If no pip in PATH:
python -m pip install nltk
python3 -m pip install nltk
# Windows:
py -m pip install nltk
# From Jupyter Notebook:
!pip install nltk
#or
!pip3 install nltk
Once the package is installed, try importing the module as follows:
import nltk
print(nltk.__version__)
You should see the version number of the installed nltk module printed on the console. This means you installed and imported the nltk package successfully.
2. Check if you have multiple Python versions installed
If you still see the error, then you may have multiple versions of Python installed on your system.
You can check this by running the which -a python and which -a python3 commands from the terminal:
$ which -a python
/usr/local/bin/python
$ which -a python3
/usr/local/bin/python3
/usr/bin/python3
In the example above, there are multiple versions of Python installed on the system:
- Python 2 installed on
/usr/local/bin/python - Python 3 installed on
/usr/local/bin/python3and/usr/bin/python3
Each Python distribution is bundled with a specific pip version. If you want to install a module for Python 2, use pip. Otherwise, use pip3 for Python 3.
The problem arise when you install nltk for Python 2 but runs the code using Python 3, or vice versa:
# Install nltk for Python 2
$ pip install nltk
# Run the code with Python 3
$ python3 main.py
# Or Install nltk for Python 3
$ pip3 install nltk
# Run the code with Python 2
$ python main.py
If you install nltk for Python 2, then you need to run the code using Python 2 as well:
$ pip install nltk
$ python main.py
Having multiple Python versions can be confusing. You must carefully inspect how many Python versions you have on your computer, then find out which pip and python versions you are calling from the terminal.
Once you use the right pip and python versions, you should be able to import nltk successfully.
3. No module named nltk in Visual Studio Code (VSCode)
If you use VSCode integrated terminal to run your code, you might get this error even when nltk is already installed.
This means the python and pip versions used by VSCode differ from the one where you install nltk.
You can check this by running the following code:
import sys
print(sys.executable)
The print output will show you the absolute path to the Python used by VSCode. For example:
/path/to/python3
Copy the path shown in the terminal and add -m pip install nltk as follows:
/path/to/python3 -m pip install nltk
The command will install nltk for the Python interpreter used by VSCode. Once finished, try running your code again. It should work this time.
Conclusion
Most likely, you see the NameError: name 'nltk' is not defined error because you didn’t install the nltk package from pip, or you installed the package on a different version of Python.
The steps shown in this article should help you fix this error.
I hope this article is helpful. Happy coding! 👋