
20 Tips for Using Python Pip
Introduction
Python has become one of the most popular programming languages due to the easy to use syntax as well as the thousands of open-source libraries developed by the Python community. Almost every problem you want to solve, you can find a solution with these third-party libraries, so that you do not need to reinvent the wheels. Majority of these libraries are hosted in the repository called Pypi and you can install these libraries with the Python pip command.
Python pip module helps you to manage the downloading, installation of the packages, and solving the dependency requirements. Although you probably have used pip for some time, you may not spend much time to read through it’s user guide for some of the useful operations. In this article, we have summarize the 20 useful tips for managing Python third party packages with Python pip.
Check the current pip version
Since Python version 3.4, the pip module has been included by default within the Python binary installer, so you do not need to install it separately once you have Python program installed. To check the version of the pip package, you can use the below:
pip --version
Sample output:
Install package from Pypi
Installing package is very simple with pip command, you can use “install” option followed by one or multiple package names:
pip install requests
By default, pip looks for the latest release and install the latest version for you together with the dependency packages. Sample output as per below:
You can also specify the version number of the package to be installed:
py -m pip install pip==21.1.1
Sample output:
Pip also supports a list of version specifier such as >=1.2, <2.0, ~=2.0, !=2.0 or ==1.9.* for matching the correct version of the package to be installed.
When you are not in a virtual environment, the package will be installed into the global folder (system-site) by default, you can use the “–user” option to specify the installation folder in user-site in case of any permission issue. E.g.:
pip install --user requests
Output as per below:
Although you can specify your own customized installation path for your different projects, using virtual environment is still the best way to manage dependencies and conflicts.
Show package version and installation location
To check the basic information such as version number or installation location for an existing package, you can use the “show” option:
pip show colorama
You can see the below information about the package:
And you can also use the “–verbose” mode to display the additional meta info.
List all the packages installed
To list out all the packages installed, you can use the “list” option:
py -m pip list
You shall see the output format similar to below:
You can add a “–user” option to list all packages installed in your user-site, e.g.:
py -m pip list --user
When you are using virtual environment with “–system-site-packages” (allowing virtual environment to access system-site packages), you can use the “list –local” option to show only the packages installed in your virtual environment:
py -m pip list --local
List all the outdated packages
To check if any installed packages are outdated, you can use the “–outdated” option:
py -m pip list -o # or py -m pip list --outdated
Below is the sample output:
Upgrade package to the latest version
Once identified the outdated packages, you can manually use the “–upgrade” option to upgrade the package to the latest version. Multiple package name can be specified with whitespaces:
py -m pip install --upgrade pip #or py -m pip install --U pip setuptools
Sample output as per below:
Auto upgrade packages to the latest version
Pip does not have an option to auto upgrade the outdated packages, but you can make use of the result from “list -o” and create a simple script to achieve it, e.g.:
#in Windows command line for /F "skip=2 delims= " %i in ('pip list --o --local') do pip install -U %i #in linux pip list --o --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
Export installed packages
You can use “freeze” option to export all your installed package names into a text file, so that you can re-create exactly the same project environment in another PC. For instance:
py -m pip freeze -l > requirements_demo.txt
Result in the output text file:
Install multiple packages from requirement file
For the packages you’ve exported with “freeze” option, you can re-install all the packages in another environment with the below “-r” option:
py -m pip install -r requirements.txt
You may see the below output when you have package name “numpy” in your requirements.txt file:
The requirements.txt also allows to include other requirement files. This may be useful when you have a sub module requires extra packages and can be run independently as a separate application. So you may put the common packages in the requirements.txt and the additional packages in the requirements_module1.txt file, the include the requirements.txt file in your module file.
E.g. the content in the requirements_module1.txt:
#opencv-python #comment out some packages python-dateutil -r requirements.txt
When you run the “install” command:
py -m pip install -r requirements_module1.txt
You shall the sample output as per below:
Uninstall packages
Uninstalling an existing package can be done with below command:
pip uninstall numpy
Output as per below:
Install package from wheel file
When you have a binary wheel file downloaded in your local folder, you can also use the “install” option to install the wheel file directly:
py -m pip install --force-reinstall C:\Users\codef\Downloads\python_dateutil-2.8.2-py2.py3-none-any.whl
Output as per below:
Install package from non-Pypi index
If the package is not hosted in Pypi index, you can manually specify the index url with “–index-url” or simply “-i” :
py -m pip install -i https://mirrors.huaweicloud.com/repository/pypi/simple/ colorama
Above command would download and install the package from huawei cloud repository (a PyPi mirror):
This would be also helpful when you are not able to access the Pypi directly due to the firewall or proxy issue in your network, you can find a Pypi mirror repository and download the packages from there. Usually these mirrors synchronize with Pypi in a few minutes interval which should not cause any issue for your development work.
Configure global index url
To permanently save the index url so that you do not have to key in the url for every package installation, you can use the “config” option to set the url globally. e.g:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
With the above setting, you can install package from the mirror repository as per normal without specifying the url option.
Check package compatibility
When you manually install the packages, sometimes you may encounter issues that some dependency packages
having incompatible version installed. To check if you have any such issue, you can use the “check” option :
python -m pip check
You may see something similar to below when there is any conflict:
Download package into local folder
You can download the package wheel files into your local folder when you need:
pip download requests -d .\requests
The “-d” option allows you specify the target folder where you want to save the wheel files. You may get multiple wheel files if the package has any dependency packages. (you can use “–no-deps” when you do not want to download the dependency files)
Below is the sample result:
Install package into local folder
To install the package from a folder, you can use the “-f” with the file path:
pip install requests -f .\requests
This is the same as installing the package from Pypi:
Conclusion
In this article we have summarized some useful tips for using Python pip to manage the installation and upgrading of the third party packages for your Python projects. For more advanced usage of this module, you may refer to it’s official document.