ImportError: No module named requests
Categories:
Resolving 'ImportError: No module named requests' in Python

This article provides a comprehensive guide to troubleshoot and fix the common Python error 'ImportError: No module named requests', covering installation, environment issues, and common pitfalls.
The ImportError: No module named requests
is one of the most frequently encountered issues by Python developers, especially when starting out or working with new environments. It indicates that the Python interpreter cannot find the requests
library, which is essential for making HTTP requests. This guide will walk you through the common causes and solutions to get your requests
module working correctly.
Understanding the ImportError
An ImportError
occurs when Python tries to load a module but cannot locate its definition. For the requests
module, this typically means one of two things: either the requests
library has not been installed in the Python environment you are currently using, or it has been installed in a different environment than the one your script is executing in. Python's module search path is crucial here; if the module isn't in a location Python checks, it won't be found.
flowchart TD A[Python Script Execution] --> B{Is 'requests' module found in sys.path?} B -- Yes --> C[Module Loaded Successfully] B -- No --> D[ImportError: No module named requests] D --> E{Cause: Not Installed?} D --> F{Cause: Wrong Environment?} E --> G[Solution: pip install requests] F --> H[Solution: Activate Correct Virtual Environment] F --> I[Solution: Check Python Interpreter Path]
Flowchart of 'ImportError' diagnosis and resolution
Common Causes and Solutions
Let's explore the most common reasons for this error and how to resolve them effectively.
pip
) associated with your project's environment. This is the root of many ImportError
issues.1. Requests Library Not Installed
The requests
library is not part of Python's standard library. You need to install it explicitly using pip
, Python's package installer. If you haven't installed it, Python won't find it.
pip install requests
Install the requests library using pip
If you have multiple Python versions installed, you might need to specify which pip
to use. For Python 3, it's often pip3
:
pip3 install requests
Install requests for Python 3
2. Incorrect Python Environment or Virtual Environment
This is perhaps the most common and confusing cause. You might have installed requests
in one Python environment (e.g., a virtual environment) but are running your script with a different Python interpreter (e.g., the system-wide Python). Python projects should ideally use virtual environments to manage dependencies in isolation.
1. Activate your virtual environment
Before installing packages or running your script, ensure your virtual environment is activated. This changes your shell's context to use the Python and pip
associated with that environment.
2. Install requests within the active environment
Once activated, run pip install requests
. This ensures the library is installed into the currently active environment.
3. Verify installation and run your script
After installation, run your Python script. The requests
module should now be accessible.
# Create a virtual environment (if you haven't already)
python3 -m venv myenv
# Activate the virtual environment (Linux/macOS)
source myenv/bin/activate
# Activate the virtual environment (Windows PowerShell)
.\myenv\Scripts\Activate.ps1
# Install requests
pip install requests
# Run your script
python your_script.py
Example workflow using a virtual environment
3. IDE/Editor Configuration Issues
Integrated Development Environments (IDEs) like VS Code, PyCharm, or Sublime Text often have their own settings for the Python interpreter. If your IDE is configured to use a different interpreter than where requests
is installed, you'll encounter this error.

Ensure your IDE is configured to use the correct Python interpreter associated with your project's virtual environment.
Check your IDE's settings to ensure it's pointing to the Python executable within your virtual environment (e.g., myenv/bin/python
or myenv\Scripts\python.exe
).
4. Typo in Import Statement or Module Name
While less common for a widely used library like requests
, a simple typo in your import
statement can also lead to an ImportError
. Ensure you are importing it correctly.
import requests
# Correct usage
response = requests.get('https://api.github.com')
print(response.status_code)
Correct way to import and use the requests library
requests.py
as this can cause a name collision and prevent the interpreter from finding the actual requests
library.