zsh: command not found: pip – Fix with pip3 & PATH in 2 Minutes

zsh: command not found: pip – Fix with pip3 & PATH in 2 Minutes

If you see the error “zsh: command not found: pip” on macOS, it usually means pip is installed as pip3 or is not available in your PATH.

Quick fix (try this first)

text
python3 -m pip install --upgrade pip

This quick fix works in most cases.

On macOS, pip is often installed as pip3, which is why the pip command is not found in zsh. If it doesn’t resolve the issue, follow the additional fixes below based on your Python setup.


What causes “zsh: command not found: pip” on macOS?

You typically see this error for one of the following reasons:

  • pip is installed as pip3, not pip
  • pip exists but is not in PATH
  • Python was installed without pip
  • A virtual environment is not activated
  • Python installation is incomplete or broken

image


Fix 1: Use pip3 instead of pip (Most Common)

On macOS, Python 3 is the default and pip is installed as pip3.

text
pip3 --version

If this works, you can install packages like this:

text
pip3 install requests

Or use the safest method:

text
python3 -m pip install requests

This avoids PATH and shell issues completely.


Fix 2: Install pip on macOS using get-pip.py

If pip is not installed at all, install it manually.

Download the installer:

text
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

Run it using Python 3:

text
python3 get-pip.py

Verify installation:

text
pip3 --version

Python 3 must already be installed for this method.


Fix 3: Add pip to PATH in zsh (macOS)

Sometimes pip exists but zsh cannot find it.

Check your PATH:

text
echo $PATH

Find pip and python paths:

text
which pip3
which python3

Common pip locations on macOS:

  • /usr/local/bin
  • /Library/Frameworks/Python.framework/Versions/3.x/bin

Edit your zsh config:

text
nano ~/.zshrc

Add (adjust paths if required):

text
export PATH="/usr/local/bin:/Library/Frameworks/Python.framework/Versions/3.x/bin:$PATH"

Apply changes:

text
source ~/.zshrc

Verify:

text
pip3 --version

If you want the cleanest and safest setup, use Homebrew.

Install Homebrew (if not installed):

text
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Install Python (includes pip):

text
brew install python

Verify:

text
python3 --version
pip3 --version

Homebrew manages PATH automatically, avoiding most zsh issues.


Fix 5: pip not found inside a virtual environment

Each virtual environment has its own pip.

Activate your virtual environment:

text
source /path/to/venv/bin/activate

Check pip:

text
pip --version

If pip is missing inside the environment, install it:

text
python -m ensurepip --upgrade

Or using get-pip.py:

text
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py

Which fix should you use?

  • New macOS user → Fix 4 (Homebrew)
  • pip3 works but pip fails → Fix 1
  • pip installed but not found → Fix 3 (PATH)
  • Virtual environment issue → Fix 5
  • pip completely missing → Fix 2

Verify the fix

After applying any fix, confirm:

text
pip3 --version
python3 -m pip --version

If these commands work, the error is resolved.


Why macOS shows this error so often

  • macOS ships with zsh as default shell
  • Python 2 is deprecated
  • pip binary is no longer created by default
  • Python frameworks install pip outside default PATH

Using python3 -m pip avoids all of these problems.


Final recommendation

For long-term stability on macOS, always use:

text
python3 -m pip install <package>

This works across:

  • zsh
  • Homebrew Python
  • system Python
  • virtual environments

Summary

On macOS, the “zsh: command not found: pip” error usually occurs because pip is installed as pip3 or is missing from the PATH. Using python3 -m pip works reliably across system Python, Homebrew, and virtual environments. If the quick fix fails, reinstalling Python with Homebrew or fixing PATH resolves the issue.


References

Omer Cakmak

Omer Cakmak

Linux Administrator

Highly skilled at managing Debian, Ubuntu, CentOS, Oracle Linux, and Red Hat servers. Proficient in bash scripting, Ansible, and AWX central server management, he handles server operations on OpenStack, KVM, Proxmox, and VMware.