If you use the pip
package manager to install and manage your Python libraries, you can use the requirements.txt
configuration file to specify all the packages, and their versions, to be installed for a Python project.
Follow this article for those interested in learning how to use pip to install and manage Python packages. For those interested in how to use the command prompt.
What are the Requirements Files
The requirements configuration files are files that contain a list of items to be installed when using pip.
The requirements.txt files looks something like this:
Install Python Package (pip install -r requirements.txt)
To install Python packages using the requirements.txt configuration file, use the pip install -r requirements.txt
command:
$ pip install -r requirements.txt
Although not obligatory, the convention is to name the requirements file requirements.txt
.
If the requirements.txt
file is not in your working directory, specify the path instead:
$ pip install -r path/to/requirements.txt
What is the -r Flag in pip install -r requirements.txt
In the pip install -r requirements.txt
command, the -r
flag allows pip install
to open the requirements.txt file and install the packages inside of it.
How to Write your requirements.txt Configuration File
The requirements.txt
Configuration File is structured in a way that each line of the requirements file represents something to be installed.
- Lines starting with a
#
are ignored. - A package can be specified with its name only
- A package can be specified with the name and the version
- A package can have options
- A package can have multiple conditions
# this is a comment line
# Requirements without Version
nose
nose-cov
beautifulsoup4
# Requirements with Version
docopt == 0.6.1
# Requirements with conditions
requests [security] >= 2.8.1, == 2.8.* ; python_version < "2.7"
Check out the official doc on the requirements.txt file formats.
Requirements.txt Version Specifiers
You can specify the version of a package using one of the following specifiers ==
, >
, >=
, <
, <=
, ~=, !=
described in full on PEP 508.
Here is a few examples of valid requirements.txt
specifiers.
package
package == 1.3
package >= 1.2, < 2.0
package[foo, bar]
package ~= 1.4.2
package == 5.4 ; python_version < '3.8'
package ; sys_platform == 'win32'
requests [security] >= 2.8.1, == 2.8.* ; python_version < "2.7"
Check out the official doc on the requirements.txt specifiers.
Specify Two Versions of a Package in Requirements.txt
You can specify two versions of a package in requirements.txt
by using the comma with the requirements specifiers.
package >= 1.2, < 2.0
In the example above, pip
will select the best match that is at least 1.2 and less than 2.0.
Export Python Environment Configuration (pip freeze)
To export all the installed packages of your current Python environment, along with their versions, use the pip freeze
command.
The pip freeze command is used to output the installed packages and their version.
$ pip freeze
Everything listed here can be added to the requirements.txt
file by using the pip freeze > requirements.txt command
.
advertools==0.13.2
pandas==2.0.1
Read the following article to learn more about how to list installed packages in Python.
pip freeze > requirements.txt
You can use pip freeze
to create a requirements.txt
file that can be used to install a series of packages in one go.
$ pip freeze > requirements.txt
Then, all the packages listed in the requirements.txt file will be accessible for installation using pip install -r requirements.txt
.
Official Pip Documentation
SEO Strategist at Tripadvisor, ex- Seek (Melbourne, Australia). Specialized in technical SEO. Writer in Python, Information Retrieval, SEO and machine learning. Guest author at SearchEngineJournal, SearchEngineLand and OnCrawl.