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

Introduction

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.

Advertisement

 

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:

Advertisement
[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
====================================================================================================================
Reinstalling:
 python3-pip                 noarch                 21.2.3-6.el9                    appstream                 1.7 M

...

Reinstalled:
  python3-pip-21.2.3-6.el9.noarch                                                                                   

Complete!

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
/root/.local/bin:/root/bin:/sbin:/bin:/usr/sbin:/usr/bin

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

then

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

or

Advertisement
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.

 

Summary

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.

 

References

stackoverflow.com - zsh command cannot found pip

 

Didn't find what you were looking for? Perform a quick search across GoLinuxCloud

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

X