How to List Installed Python Modules
Introduction
Python, somewhat similar ot Node, uses a system of installed modules/packages. But as you continue to install more and more modules, it might get a bit tricky to keep track of all of them. In this Byte, we'll explore how to get a list of all locally installed Python modules, which can be very helpful in managing your Python environment.
Python Modules
A Python module is basically just a file (or directory of files) containing Python definitions and statements. These modules can define functions, classes, and variables that can be utilized in other Python code. It's like a toolkit filled with various tools, each designed for a specific task. Python comes with a standard library of modules, but the beauty of Python actually lies in the vast array of 3rd party modules that are available. These can be installed locally and used as needed.
For instance, if you're working on a web scraping project, you might install the BeautifulSoup
module. Or, if you're dealing with data analysis, the pandas
module is popular for many data-related tasks.
How to List Installed Python Modules
Python provides a few different ways to list all the modules installed in your local environment. The most common method is using the pip
command, which is the standard package manager for Python.
Using pip list
The pip list
command is a quick way to see all the Python modules installed in your current environment. Open up your terminal or command line interface and type in the following command:
$ pip list
This will provide you with a list of all installed packages, along with their respective versions.
Package Version
--------------- -------
beautifulsoup4 4.9.3
numpy 1.19.5
pandas 1.1.5
pip 21.0.1
setuptools 54.1.2
Note: Remember that the list of modules you see will be specific to your current Python environment. If you're using a virtual environment, only the modules installed in that environment will be shown.
That's it for the pip list
command. It's a pretty simple way to get a quick overview of your installed Python modules. In the next section of this Byte, we'll see another useful command, pip freeze
, and see how it differs from pip list
.
Using pip freeze
pip freeze
is another command that you can use to list all installed Python modules. But unlike pip list
, pip freeze
returns the list of modules in a format that pip
can consume. This means each line of the output is a valid argument for pip install
.
Let's run pip freeze
in the command line and see what it gives us:
$ pip freeze
This will return something like:
asn1crypto==0.24.0
certifi==2018.1.18
cffi==1.11.5
chardet==3.0.4
cryptography==2.1.4
idna==2.6
pycparser==2.18
PySocks==1.6.8
requests==2.18.4
six==1.11.0
urllib3==1.22
Each line in the output is a module along with its installed version. This is super helpful when you need to replicate your environment elsewhere or create your requirements.txt file.
Differences Between pip list and pip freeze
Now that you've seen both pip list
and pip freeze
in action, you might be wondering what the difference is, other than some simple formatting.
And the main difference between the two commands really is just the formatting of their output. pip list
outputs a slightly more human-readable format of installed packages, which is great when you're quickly checking what's installed. On the other hand, pip freeze
outputs a list of packages in a format that pip
can use in other commands. This is particularly useful when you want to replicate your environment, as you can simply redirect the output of pip freeze
to a requirements file, then use pip install -r requirements.txt
on another machine to install the same packages.
Note: Both pip list
and pip freeze
will list all installed packages, regardless of where they were installed from. This includes packages installed via pip, setup.py, and other package managers.
Listing Modules in a Virtual Environment
Working in a virtual environment can help you manage dependencies for different Python projects and keep them separate. When you activate a virtual environment, pip list
and pip freeze
will only show the packages installed in that environment.
To illustrate, let's create a new virtual environment and install a package:
$ python3 -m venv myenv
$ source myenv/bin/activate
(myenv) $ pip install requests
Now, if we run pip list
or pip freeze
, only the requests
package and its dependencies will be listed:
(myenv) $ pip list
Package Version
---------- -------
certifi 2021.5.30
chardet 4.0.0
idna 2.10
requests 2.25.1
urllib3 1.26.6
Conclusion
To sum up, Python provides a few ways to list all installed modules, whether you're working in a global or virtual environment. pip list
and pip freeze
are two commands that not only list the installed packages but also provide additional info, namely the version of the packages. Remember that the list of installed packages can vary depending on your active environment, so always double-check which environment you're in before installing or listing packages.