Resolve Python ImportError: No module named ...

David Y.
—The Problem
When I run a Python script containing the line import requests, I receive the following error:
ImportError: No module named requests
I have received similar error messages for other modules. How do I resolve them?
The Solution
Python comes with a large number of built-in modules, such as os, sys, and time, which can be imported into any script without errors. However, many popular modules are developed by third parties and must be installed separately – the requests module is one example. Depending on your system, Python modules can be installed using either Python’s PIP or the system package manager.
macOS/Linux
On macOS and most Linux systems, this command will work:
pip3 install requests
This will install the module at the user level, or in the current virtual environment if you’re using one. To install the package system-wide, we can use sudo:
sudo pip3 install requests
On some Linux systems, installing packages with PIP will produce the following error message:
error: externally-managed-environment
This message will tell you to install Python packages using the system package manager. Depending on your system, this command will look like one of the following:
- Debian/Ubuntu:
sudo apt install python3-requests - Fedora:
sudo dnf install python-requests - Arch:
sudo pacman -S python-requests
Python packages in the system repositories will generally have names like python-packagename or python3-packagename. Less common packages may not be available.
Windows
On Windows, we can install Python packages from the command prompt using this command:
pip3 install requests
If the above command doesn’t work, PIP may not be in the system PATH and will need to be called through Python:
python3 -m pip install requests
- Sentry BlogPython Performance Testing: A Comprehensive Guide (opens in a new tab)
- Syntax.fmListen to the Syntax Podcast (opens in a new tab)
- Sentry BlogLogging in Python: A Developer’s Guide (opens in a new tab)
- CodecovPython - Codecov (opens in a new tab)
- Listen to the Syntax Podcast (opens in a new tab)
![Syntax.fm logo]()
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODES
Considered “not bad” by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.
