zsh: command not found: pip - possible causes? [SOLVED]

Written By - Omer Cakmak


Pip (PIP install packages) is a package manager application used to install 3.rd party python packages. The Python packages that come with the operating system may not always be up to date or there may be conflicts when you install them. This is why using pip is important.

During or after installation, users encounter "zsh: command not found: pip". There are 2 possible causes here for this error. Let's examine them.


Cause-1: Pip package not installed

Solution - 1: Install pip package from official repository

Almost all Linux operating systems have pip packages in their package repositories. So you can use the default package manager based on your environment to install pip.

On RHEL based environment you can use yum or dnf and on Debian based environment you can use apt:

Now here I am getting below error while trying to execute pip:

[root@almalinux8]/home/foc# pip
zsh: pip: command not found...
Install package 'python3-pip' to provide command 'pip'? [N/y]

If you think it is not installed on your system, continue with "y".  You must switch to root user for this process. Otherwise, you will have an authorization problem in the installation process. Then it will ask you for information for installation:

[root@almalinux8]/home/foc# pip
zsh: pip: command not found...
Install package 'python3-pip' to provide command 'pip'? [N/y] y
 * Waiting in queue... 
The following packages have to be installed:
 python3-pip-21.2.3-6.el9.noarch	A tool for installing and managing Python3 packages
Proceed with changes? [N/y] y
 * Waiting in queue... 
 * Waiting for authentication... 
 * Waiting in queue... 
 * Downloading packages... 
 * Requesting data... 
 * Testing changes... 
 * Installing packages... 

After this process, pip will be installed. Now you can enter pip and press TAB and it should you the list of installed pip packages:

[root@almalinux8]/home/foc# pip
pip             pip-3           pip3            pip-3.9         pip3.9          pipewire        pipewire-pulse


Sometimes there may be problems during package installation. Or the installed pip may be damaged due to package conflicts. In this case, it may be necessary to remove the pip package from the system and reinstall it:

[root@almalinux8]/home/foc# dnf reinstall python3-pip
Last metadata expiration check: 3:13:14 ago on Tue 06 Sep 2022 03:10:59 PM +03.
Dependencies resolved.
 Package                     Architecture           Version                         Repository                 Size
 python3-pip                 noarch                 21.2.3-6.el9                    appstream                 1.7 M




You now have a clean pip install. (Steps to install on Debian based systems: How to install pip Ubuntu 20.04?)


Solution - 2: Install from the official repository

You can also download the latest available version of pip from their official repository and install it manually using the following commands:

[root@almalinux8]/home/foc# wget https://bootstrap.pypa.io/get-pip.py
[root@almalinux8]/home/foc# python get-pip.py


Cause-2: $PATH Environment Variable Check

I am sure you are familiar with PATH variable but just to give you some background, PATH variable contains the list of PATH which will have all the system binaries. It is possible that your PATH variable was manipulated and now it does not contain the location of pip binary. So it is important to check your PATH variable.


Solution - 1: Check $PATH and Update

Check the user's environment variables. List PATH environment variables with the following command:

[root@almalinux8 foc]# echo $PATH

While the application path information is inside /usr/bin:

[root@almalinux8 foc]# ls /usr/bin/pip*
/usr/bin/pip /usr/bin/pip3 /usr/bin/pip3.9 /usr/bin/pipewire-pulse
/usr/bin/pip-3 /usr/bin/pip-3.9 /usr/bin/pipewire

So if your PATH variable doesn't contain /usr/bin then you can add the same using following command:

export PATH=/usr/bin:$PATH

This command will prepend /usr/bin into the PATH variable. But this change is temporary and will not survive the reboot. To change this permanently, create a new file inside /etc/profile.d by any name but make sure the file has .sh extension.

We will create a file /etc/profile.d/pip_path.sh with below content:

export PATH=/usr/bin:$PATH

Save and exit the file. Now next time the Linux server goes for reboot, it will automatically collect /usr/bin PATH.


Solution - 2: Define alias for the pip command

Depending on the Python version, pip is called differently. Python3 is called pip3, and python2 is called pip. If you want to use pip3 when you type pip in the terminal, you must enter it as an alias in files such as ~/.zshrc, /etc/profile. For example:

[foc@almalinux8 ~]$ nano ~/.zshrc


alias pip='/usr/local/bin/pip3'


alias pip='/usr/local/bin/pip3.9'

save and exit. Finally:

[foc@almalinux8 ~]$ source ~/.zshrc

Then when you call pip, the desired version will run.  If pip is installed in a different directory, you can define an alias and serve pip to the user that way.



The first cause we described above is encountered more often. The operating system may not always offer the updated version. For a problem-free and up-to-date pip, you can download, install and upgrade from the pip official address.



stackoverflow.com - zsh command cannot found pip


Can't find what you're searching for? Let us assist you.

Enter your query below, and we'll provide instant results tailored to your needs.

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

Buy GoLinuxCloud a Coffee

For any other feedbacks or questions you can either use the comments section or contact me form.

Thank You for your support!!

Leave a Comment