ModuleNotFoundError: No module named 'pip' in Python

avatar
Borislav Hadzhiev

Last updated: Apr 8, 2024
4 min

banner

# ModuleNotFoundError: No module named 'pip' in Python

The Python "ModuleNotFoundError: No module named 'pip'" occurs when pip is not installed in our Python environment.

To solve the error, install the module by running the python -m ensurepip --upgrade command on Linux or MacOS or py -m ensurepip --upgrade on Windows.

no module named pip

# Install pip using ensurepip

Open your terminal and run the following command to install pip.

shell
# ๐Ÿ‘‡๏ธ On Linux or macOS python -m ensurepip --upgrade # ๐Ÿ‘‡๏ธ Using python 3 python3 -m ensurepip --upgrade # ๐Ÿ‘‡๏ธ On Windows py -m ensurepip --upgrade

update pip ensurepip

The ensurepip package enables us to bootstrap the pip installer into an existing Python installation or virtual environment.

If the PATH for pip is not set up on your machine, replace pip with python -m pip:

shell
# ๐Ÿ‘‡๏ธ Make sure to use your version of Python, e.g. 3.10 python -m pip install requests python3 -m pip install requests # ๐Ÿ‘‡๏ธ On Windows py -m pip install requests

# Using the official get-pip.py script to install pip

Alternatively, you can use the official get-pip script to install pip.

Download the script from https://bootstrap.pypa.io/get-pip.py by:

  1. Clicking on the link.
  2. Right-clicking and selecting "Save as" in your browser.

Open your terminal in the location where the get-pip.py file is downloaded and run the following command.

shell
# ๐Ÿ‘‡๏ธ On Linux or macOS python get-pip.py # ๐Ÿ‘‡๏ธ Using python 3 python3 get-pip.py # ๐Ÿ‘‡๏ธ On Windows py get-pip.py

python get pip py install

The get-pip.py script uses bootstrapping logic to install pip.

You can also download the script using curl.

shell
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py --force-reinstall python3 get-pip.py --force-reinstall py get-pip.py --force-reinstall

using get pip script to install pip

The --force-reinstall option forces pip to reinstall the package.

If you got an error that "'curl' is not recognized as an internal or external command", click on the following article.

# Using an operating system-specific command to install pip

If none of the suggestions helped, try to install pip with a command that's specific to your operating system.

shell
# ๐Ÿ‘‡๏ธ On Debian / Ubuntu sudo apt update sudo apt install python3-venv python3-pip # ---------------------------------------------------- # ๐Ÿ‘‡๏ธ On macOS brew install python # ---------------------------------------------------- # ๐Ÿ‘‡๏ธ On Fedora sudo dnf update sudo dnf install python3-pip python3-wheel # ---------------------------------------------------- # ๐Ÿ‘‡๏ธ on CentOS / RHEL sudo yum update sudo yum install python3 python3-pip # ---------------------------------------------------- # ๐Ÿ‘‡๏ธ on Arch Linux sudo pacman -S python-pip

Try upgrading pip by running:

shell
# ๐Ÿ‘‡๏ธ on macOS or Linux python -m pip install --upgrade pip # ๐Ÿ‘‡๏ธ If you get a permissions error python -m pip install --user --upgrade pip # ๐Ÿ‘‡๏ธ For Python 3 python3 -m pip install --upgrade pip # ๐Ÿ‘‡๏ธ If you get a permissions error python3 -m pip install --user --upgrade pip # ๐Ÿ‘‡๏ธ on Windows py -m pip install --upgrade pip # ๐Ÿ‘‡๏ธ If you get a permissions error py -m pip install --user --upgrade pip

If the error persists, get your Python version and make sure you are installing the package using the correct Python version.

shell
python --version python3 --version

get python version

For example, my Python version is 3.10.4, so I would install the requests package with pip3.10 install requests.

shell
pip3.10 install requests # ๐Ÿ‘‡๏ธ If you get a permissions error pip3.10 install requests --user sudo pip3.10 install requests

Notice that the version number corresponds to the version of Python I'm using.

If you have multiple versions of Python, make sure the correct Python interpreter is selected in your IDE.

# Try creating a virtual environment

If that didn't help and you're using a virtual environment, try recreating it.

shell
# ๐Ÿ‘‡๏ธ optionally store installed packages in a file pip freeze > requirements.txt # ๐Ÿ‘‡๏ธ deactivate deactivate # ๐Ÿ‘‡๏ธ Remove the old virtual environment folder: macOS and Linux rm -rf venv # ๐Ÿ‘‡๏ธ Remove the old virtual environment folder: Windows rd /s /q "venv" # ๐Ÿ‘‡๏ธ initialize a new virtual environment python -m venv venv # ๐Ÿ‘‡๏ธ Activate on Unix or MacOS source venv/bin/activate # ๐Ÿ‘‡๏ธ Activate on Windows (cmd.exe) venv\Scripts\activate.bat # ๐Ÿ‘‡๏ธ Activate on Windows (PowerShell) venv\Scripts\Activate.ps1 # ๐Ÿ‘‡๏ธ upgrade your pip version pip install --upgrade pip # ๐Ÿ‘‡๏ธ Install the modules in your requirements.txt file pip install -r requirements.txt

If the python -m venv venv command doesn't work, try the following 2 commands:

  • python3 -m venv venv
  • py -m venv venv

Your virtual environment will use the version of Python that was used to create it.

This should work if your previous virtual environment didn't have pip installed for some reason.

# Installing pip from the directory of the executable

If none of the suggestions helped on a Windows machine, try installing pip from the directory where the pip.exe file is located.

First, locate Python by running the following command using cmd:

shell
# ๐Ÿ‘‡๏ธ for Windows where python # ๐Ÿ‘‡๏ธ or a specific version if you have multiple installed where python3

installing pip from the source directory

The path in the example is similar to the following.

shell
C:\Users\MyUser\AppData\Local\Programs\Python\Python310\python.exe

The path for you will likely be different, so make sure to use the one you got from issuing the where Python command.

There should be a Scripts directory in your Python3XX folder.

Now open the Scripts folder and make sure it contains the pip.exe file.

Open your command prompt in the Scripts directory right next to the pip.exe file and run the following command.

shell
pip install pip py -m pip install --upgrade pip

running pip install in source folder

If you get an error that "The term 'pip' is not recognized as the name of a cmdlet", click on the following article.

# Setting Python and pip in your PATH environment variable

If the error persists, I would suggest watching a quick video on how to set Python and pip in your PATH environment variable.

This one is for setting Python and pip in the PATH on Windows:

This one is for setting Python and pip in the PATH on MacOS and Linux:

# Additional Resources

You can learn more about the related topics by checking out the following tutorials:

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.

Copyright ยฉ 2024 Borislav Hadzhiev