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.


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.


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

Get Started With Sentry

Get actionable, code-level insights to resolve Python performance bottlenecks and errors.

  1. Create a free Sentry account

  2. Create a Python project and note your DSN

  3. Grab the Sentry Python SDK

pip install --upgrade sentry-sdk
  1. Configure your DSN
import sentry_sdk sentry_sdk.init( "https://<key><project>", # Set traces_sample_rate to 1.0 to capture 100% # of transactions for performance monitoring. # We recommend adjusting this value in production. traces_sample_rate=1.0, )

Check our documentation for the latest instructions.

Loved by over 4 million developers and more than 90,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.

Share on Twitter
Bookmark this page
Ask a questionJoin the discussion

Related Answers

A better experience for your users. An easier life for your developers.

© 2024 • Sentry is a registered Trademark
of Functional Software, Inc.