bash: pip: command not found
Categories:
Resolving 'pip: command not found' on macOS

Encountering 'pip: command not found' is a common issue for Python developers, especially on macOS. This guide provides comprehensive solutions to diagnose and fix this problem, ensuring you can manage your Python packages effectively.
The pip: command not found
error typically means that your system's shell cannot locate the pip
executable in its PATH. This can happen for several reasons, including pip
not being installed, an incorrect installation path, or an improperly configured system PATH environment variable. This article will walk you through various troubleshooting steps, from verifying Python and pip
installations to configuring your shell environment, specifically for macOS users.
Understanding the Problem: Why 'pip' Goes Missing
Before diving into solutions, it's crucial to understand why pip
might not be found. On macOS, Python can be installed in multiple ways: via the system's default Python (which often lacks pip
or has an outdated version), Homebrew, pyenv, or directly from python.org. Each installation method places pip
in a different location, and if that location isn't in your shell's PATH
, you'll get the 'command not found' error. Python 2.x and Python 3.x also have separate pip
installations (pip
vs. pip3
).
flowchart TD A[User types 'pip install package'] --> B{Shell checks PATH environment variable?} B -->|No| C[Error: 'pip: command not found'] B -->|Yes| D{Is pip executable found in PATH?} D -->|No| C D -->|Yes| E[pip command executes successfully]
Flowchart illustrating how the shell resolves commands and leads to 'command not found' errors.
Step-by-Step Solutions to Fix 'pip: command not found'
Let's systematically address the issue. Start with the simplest checks and move to more complex solutions.
1. Step 1: Verify Python Installation
First, ensure Python itself is installed and accessible. Open your terminal and run:
python --version
python3 --version
If either command returns a version number (e.g., Python 3.9.6
), Python is installed. If you get 'command not found' for both, you'll need to install Python first, preferably using Homebrew.
2. Step 2: Check for pip and pip3
If Python is installed, try explicitly calling pip
with its version-specific name:
which pip
which pip3
If which
returns a path (e.g., /usr/local/bin/pip3
), it means pip
is installed but might not be in your default PATH
or linked correctly. If it returns nothing, pip
might not be installed for that Python version.
3. Step 3: Install or Reinstall pip using ensurepip or get-pip.py
Python 3.4+ includes ensurepip
, which can install pip
.
python3 -m ensurepip --default-pip
If ensurepip
doesn't work or for older Python versions, you can use get-pip.py
:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
rm get-pip.py
Warning: Avoid using sudo python get-pip.py
unless absolutely necessary, as it can interfere with system Python installations.
4. Step 4: Update your Shell's PATH Environment Variable
If which pip3
showed a path but pip3
still doesn't work, its directory might not be in your PATH
. You need to add the directory containing pip
to your shell's configuration file (.bash_profile
, .zshrc
, or .profile
).
- Find pip's location: Use
find / -name pip3 2>/dev/null
to locate it (e.g.,/usr/local/bin/pip3
). The directory would be/usr/local/bin
. - Edit your shell config: Open
~/.zshrc
(for Zsh) or~/.bash_profile
(for Bash) with a text editor. - Add to PATH: Add the following line, replacing
/path/to/pip/directory
with the actual directory:
export PATH="/path/to/pip/directory:$PATH"
- Apply changes: Save the file and run
source ~/.zshrc
orsource ~/.bash_profile
(or restart your terminal).
pip
. It manages dependencies and PATH configurations automatically, minimizing conflicts with the system Python. If you haven't already, consider installing Python via Homebrew: brew install python
.Managing Multiple Python Versions with pyenv
If you frequently work with different Python versions, pyenv
is an invaluable tool. It allows you to easily switch between Python installations without polluting your system's global environment. When using pyenv
, pip
is installed automatically with each Python version you manage.
# Install pyenv (if not already installed)
brew install pyenv
# Add pyenv to your shell's configuration (e.g., ~/.zshrc or ~/.bash_profile)
# For Zsh:
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
# For Bash:
echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
# Apply changes
source ~/.zshrc # or ~/.bash_profile
# Install a specific Python version
pyenv install 3.9.6
# Set it as global default
pyenv global 3.9.6
# Verify pip is available
which pip
which pip3
Commands to install pyenv and manage Python versions, ensuring pip is correctly configured.
sudo pip install
unless you are absolutely certain it's required and you understand the implications. Using sudo
with pip
can corrupt your system's Python installation and lead to permission issues, especially on macOS.