ImportError: No module named matplotlib.pyplot
Categories:
Resolving 'ImportError: No module named matplotlib.pyplot' in Python

This article provides comprehensive solutions and troubleshooting steps for the common 'ImportError: No module named matplotlib.pyplot' when working with Python and Matplotlib.
The ImportError: No module named matplotlib.pyplot
is a frequently encountered issue for Python developers, especially those new to data visualization or scientific computing. This error indicates that the Python interpreter cannot find the pyplot
submodule within the matplotlib
package. While seemingly straightforward, the root cause can vary, ranging from incorrect installation to environment path issues. This guide will walk you through the most common reasons for this error and provide clear, actionable solutions to get your Matplotlib plots up and running.
Understanding the ImportError
When you execute import matplotlib.pyplot as plt
, Python searches for a module named matplotlib
in the directories listed in its sys.path
. If matplotlib
is found, it then attempts to locate pyplot
within it. The ImportError
means that either the matplotlib
package itself is not installed, or it's installed in a location not accessible by your current Python environment, or the pyplot
submodule is somehow missing or corrupted within the installed package.
flowchart TD A[Start Python Script] --> B{Execute 'import matplotlib.pyplot'} B --> C{Is 'matplotlib' installed and accessible?} C -- No --> D["ImportError: No module named 'matplotlib'"] C -- Yes --> E{Is 'pyplot' submodule available within 'matplotlib'?} E -- No --> F["ImportError: No module named 'matplotlib.pyplot'"] E -- Yes --> G[Module Imported Successfully] D --> H[Troubleshoot Installation/Environment] F --> H
Flowchart illustrating the import process and potential failure points for Matplotlib
Common Causes and Solutions
Let's explore the most common reasons for this error and how to fix them. It's crucial to identify which Python interpreter your script is using, especially if you have multiple Python versions or virtual environments.
import sys; print(sys.executable)
at the beginning of your script. This will show you the path to the Python executable that's running your code.1. Matplotlib is Not Installed
This is the most straightforward reason. Matplotlib is a third-party library and does not come pre-installed with Python. You need to install it using pip
.
pip install matplotlib
Installing Matplotlib using pip
If you are using a specific Python version (e.g., Python 3), you might need to use pip3
instead of pip
:
pip3 install matplotlib
Installing Matplotlib for Python 3
2. Multiple Python Installations or Virtual Environments
If you have multiple Python versions installed (e.g., Python 2.7 and Python 3.9) or are working with virtual environments (which is highly recommended), you might have installed Matplotlib for one interpreter but are running your script with another. The pip
command installs packages for the Python interpreter associated with it.
To ensure you're installing into the correct environment, activate your virtual environment first, then install. If not using a virtual environment, explicitly use the pip
associated with your desired Python executable.
# Example for a virtual environment
source myenv/bin/activate
pip install matplotlib
# Example for a specific Python executable
/usr/bin/python3.9 -m pip install matplotlib
Installing Matplotlib in a virtual environment or for a specific Python executable
3. Corrupted Installation or Cache Issues
Occasionally, an installation might get corrupted, or pip
's cache might cause issues. In such cases, reinstalling Matplotlib can resolve the problem.
pip uninstall matplotlib
pip install matplotlib
Uninstalling and reinstalling Matplotlib
You can also try clearing pip's cache before reinstalling:
pip cache purge
pip install matplotlib
Purging pip cache and reinstalling Matplotlib
4. Incorrect File Naming
A less common but tricky issue is naming your Python script matplotlib.py
or pyplot.py
. When you run such a script, Python tries to import from your own file instead of the installed matplotlib
package, leading to an ImportError
.
matplotlib.py
or pyplot.py
. This creates a naming conflict with the actual library and will cause import errors.5. IDE/Editor Configuration
If you're using an Integrated Development Environment (IDE) like VS Code, PyCharm, or Spyder, ensure that your IDE is configured to use the correct Python interpreter where Matplotlib is installed. IDEs often have their own settings for project interpreters.

Ensure your IDE is using the correct Python interpreter.
Troubleshooting Steps Summary
Follow these steps to systematically diagnose and resolve the ImportError
.
1. Verify Python Interpreter
Run import sys; print(sys.executable)
in your script or interactive shell to confirm which Python interpreter is being used.
2. Check Matplotlib Installation
Open a terminal and run pip show matplotlib
. If it's installed, this command will show its details. If not, it will indicate that the package is not found.
3. Install/Reinstall Matplotlib
If not installed, use pip install matplotlib
. If already installed but still failing, try pip uninstall matplotlib
followed by pip install matplotlib
.
4. Check Script Name
Ensure your Python script is not named matplotlib.py
or pyplot.py
.
5. Verify Virtual Environment
If using a virtual environment, ensure it's activated before installing or running your script.
6. Restart IDE/Shell
Sometimes, simply restarting your IDE or terminal session can resolve path or environment variable issues.