Introduction

If you have ever faced an error like this while working with Python:

Code
ModuleNotFoundError: No module named 'your_module'

You’re not alone! This is one of the most common Python errors encountered by both beginners and experienced developers. It usually means that Python cannot find the module you’re trying to import. The good news? It’s easy to fix!

In this guide, we’ll go through simple, clear, and practical steps to fix the “ModuleNotFoundError” in Python. You’ll also learn why it happens and how to avoid it in the future. Whether you’re using Windows, macOS, or Linux, these steps will work everywhere.

What is ModuleNotFoundError in Python?

When you use an import statement like:

Python
import requests

Python looks for the requests module in its list of installed packages. If it doesn’t find it in the directories it searches (known as sys.path), it raises this error:

Code
ModuleNotFoundError: No module named 'requests'

This means that Python can’t locate the module either because it’s not installed or it’s installed in a different environment.

1. Check if the Module is Installed

The most common cause is that the module simply isn’t installed.

How to Check

Run this command in your terminal:

Bash
pip list

If your module isn’t listed, install it:

Bash
pip install module_name

Example:

Bash
pip install requests

If you’re using Python 3, it’s better to use:

Bash
pip3 install requests

If you still face an error, try installing the module just for your user:

Bash
pip install --user requests

2. Double-Check the Module Name and Spelling

Python is case-sensitive. That means import Numpy is not the same as import numpy. Even a tiny typo can break your code.

Example of Wrong Import:

Python
import Pands  # Typo - should be pandas

Correct Version:

Python
import pandas as pd  # Works fine

Tip: Always double-check the module name on https://pypi.org to make sure you’re using the correct name.

3. Verify if the Module Exists

Sometimes, you may be trying to import a package that doesn’t exist at all.

How to Check

Visit https://pypi.org and search for the module. If you don’t find it, it doesn’t exist in the Python Package Index (PyPI).

Example:

Python
import tiger  # No module named 'tiger' exists

4. Check the Module Path

Python searches for modules in directories defined in sys.path. If your module isn’t located there, Python won’t find it.

How to Check Paths

Python
import sys
print(sys.path)

If your module’s location isn’t listed, you can add it manually:

Python
import sys
sys.path.append('/path/to/your/module')

Or set an environment variable permanently:

macOS/Linux:

Bash
export PYTHONPATH=$PYTHONPATH:/path/to/your/module

Windows:
Add the same path in System Environment Variables → PYTHONPATH.

5. Check for Version Compatibility

When multiple Python versions are installed (like Python 3.9 and 3.11), the package might be installed in one version but you’re using another.

Check Python Version

Bash
python --version

Check Pip Version

Bash
pip --version

If versions don’t match, reinstall the package for the version you’re using:

Bash
python3.11 -m pip install requests

This ensures that requests is installed for Python 3.11 specifically.

6. Handle the Error Gracefully

If you want your program not to crash when a module isn’t installed, use a try-except block.

Example:

Python
try:
    import module_name
except ModuleNotFoundError:
    print("The module 'module_name' is not installed.")
else:
    print("Module 'module_name' imported successfully!")

This way, your program will show a friendly message instead of stopping unexpectedly.

7. Check IDE or Editor Configuration

Your IDE (like VS Code or PyCharm) might be using the wrong Python interpreter.

In VS Code:

In PyCharm:

Restart your IDE after making changes.

8. Upgrade or Downgrade the Package

Sometimes, a specific version of a package is incompatible with your Python version.

Upgrade Package:

Bash
pip install --upgrade package_name

Downgrade Package:

Bash
pip install package_name==1.2.3

List all packages and their versions:

Bash
pip list

9. Fix the Error in Jupyter Notebook

If you’re using Jupyter Notebook, it might be running in a different environment from where you installed the package.

Fix:

Run this inside your notebook cell:

Python
!pip install requests

Or better:

Python
import sys
!{sys.executable} -m pip install requests

This ensures Jupyter installs the package in the same environment it’s running.

10. Restart Python or Your IDE

Sometimes the environment doesn’t refresh automatically. Restarting your IDE or Python interpreter can solve the issue.

To Fix:

This reloads all the packages and paths.

11. Common Mistakes to Avoid

  1. Installing for Python 2 but running Python 3.

  2. Forgetting to activate your virtual environment.

  3. Misspelling the module name.

  4. Installing the package globally but using a local environment.

  5. Not restarting after installation.

By avoiding these mistakes, you can prevent most import-related issues.

Summary

The “ModuleNotFoundError” in Python means that the interpreter can’t find a specific module. To fix it, ensure the module is installed, check the spelling, verify the correct Python version, and confirm that your IDE is using the right interpreter. If you still face issues, reinstall the module or restart your environment. Following these simple steps will fix 99% of Python module errors, helping you code smoothly.