Introduction
This guide explains how to build from source OR-Tools, with support for Python, on Linux.
Unless you plan to modify the source code or use a third-party solver with OR-Tools, we recommend the package installation.
Although these instructions might also work on other Linux variants, we have only tested them on machines meeting the following requirements:
- Alpine Edge 64-bit (x86_64)
- Centos 7 LTS 64-bit (x86_64)
- Debian SID 64-bit (x86_64)
- Debian 11 (bullseye) 64-bit (x86_64)
- Fedora 38 64-bit (x86_64)
- Fedora 37 64-bit (x86_64)
- OpenSuse Leap 64-bit (x86_64)
- Ubuntu 24.04 64-bit (x86_64)
- Ubuntu 22.04 LTS 64-bit (x86_64)
- Ubuntu 20.04 LTS 64-bit (x86_64)
Prerequisites
The following sections describe the prerequisites for installing OR-Tools.
C++ tools
To install C++ tools, open a terminal window and enter:
Alpine
apk add alpine-sdk linux-headers cmake lsb-release-minimal
Centos
sudo yum groupinstall -y 'Development Tools'
sudo yum install -y pkgconfig redhat-lsb-core
Debian
sudo apt update
sudo apt install -y build-essential cmake lsb-release
Fedora
sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core
Fedora
sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core
OpenSUSE
sudo zypper refresh
sudo zypper install -y git gcc11 gcc11-c++ lsb-release
Ubuntu
sudo apt update
sudo apt install -y build-essential cmake lsb-release
Ubuntu
sudo apt update
sudo apt install -y build-essential cmake lsb-release
Ubuntu
sudo apt update
sudo apt install -y build-essential cmake lsb-release
SWIG
To install SWIG, open a terminal window and enter:
Alpine
apk add swig
Centos
sudo yum install -y swig
Debian
sudo apt install -y swig
Fedora
sudo dnf install -y swig
Fedora
sudo dnf install -y swig
OpenSUSE
sudo zypper install -y swig
Ubuntu
sudo apt install -y swig
Ubuntu
sudo apt install -y swig
Ubuntu
sudo apt install -y swig
Python
You must have Python 3.8+ installed.
To install Python 3.8+, open a terminal window and enter:
Alpine
apk add python3-dev py3-pip py3-wheel
Centos
sudo yum install -y python3 python3-devel python3-pip numpy
Debian
sudo apt install -y python3-dev python3-pip python3-venv
Fedora
sudo dnf install -y python3-devel python3-pip python3-venv
Fedora
sudo dnf install -y python3-devel python3-pip python3-venv
OpenSUSE
sudo zypper install -y python3-devel python3-pip python3-wheel
Ubuntu
sudo apt install -y python3-dev python3-pip python3-venv
Ubuntu
sudo apt install -y python3-dev python3-pip python3-venv
Ubuntu
sudo apt install -y python3-dev python3-pip python3-venv
You can check your Python 3 installation using:
python3 --version
python3 -c "import platform; print(platform.architecture()[0])"
python3 -m pip --version
Download the source code
There are two distinct branches of the OR-Tools source code on
GitHub: stable
and main
.
The stable
branch has been thoroughly tested and should work flawlessly on all
supported platforms.
The main
branch is where the latest updates and
improvements have been applied; it's more current, but less stable.
Download the stable source code
You can get the stable source code for OR-Tools in either of the following ways:
Clone the
stable
branch by entering:git clone https://github.com/google/or-tools
Download the latest release in a compressed file, by clicking the
Clone or download
button in GitHub.
Download the main source code
To retrieve the source code from the main
branch, enter:
git clone -b main https://github.com/google/or-tools
Download previous releases
You can get the source code for previous releases in either of the following ways:
- Download a previous release from the GitHub release page.
Assuming you have already created a local repository (by
git clone
), you can check out a specific release using a Git tag. For example, to work with the v9.11 release instead of themain
branch, enter the following commands in your local repo:git fetch --all --tags --prune
git checkout tags/v9.11 -b v9.11
Configure the build
Before building OR-Tools, you'll need to configure the CMake build system generator.
Open a terminal and navigate to the directory where you extracted the files. Then enter:
cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
Checkout the CMake documentation for details.
Using SCIP
Since v7.8, SCIP is now integrated so you won't have to install it manually.
Using Gurobi
Gurobi is now pre-integrated. When needed, at runtime, OR-Tools will search for
the Gurobi shared library in the default install path of the Gurobi installers
on MAC OS X and Windows, or by using the GUROBI_HOME
environment variable.
Using an optional third-party MIP solver
You can also use OR-Tools with any of the following optional third-party MIP solvers whose support is disabled by default:
- CPLEX
- GLPK (Linux and MacOS only)
- XPRESS Solver
Please take a look at this documentation for details.
Build the source code
To build the source code, open a terminal and navigate to the directory where you extracted the files. Then enter the following command to compile OR-Tools:
cmake --build build --config Release --target all -j -v
Checkout the CMake documentation for details.
Test the source code
You can check that everything is running correctly by entering:
cmake --build build --config Release --target test -v
This runs examples for OR-Tools. If all the examples run successfully, you are ready to get started with OR-Tools.
Cleaning the build files
If you need to re-install OR-Tools, the command:
rm -r build
will remove all compiled dependencies. This can be useful for resetting to a clean state.
Then re-enter the commands:
cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_PYTHON=ON
cmake --build build --config Release --target all -j -v
Installing OR-Tools on your operating system
You can install OR-Tools for Python on your operating system by entering:
cmake --build build --config Release --target install -v