Setup¶
Requirements¶
OptiWindNet has been tested on Windows 10/11 and on Linux systems, but should run on MacOSX as well.
Python version 3.11 or 3.12 is recommended to run OptiWindNet. Python 3.13+ may cause issues with the optiwindnet.db module, but all other features work fine. The last version to support Python 3.10 was v0.1.0.
Running OptiWindNet within a dedicated Python virtual environment is recommended. This can be achieved by installing either:
Python, which provides:
venvvirtual environment creator andpippackage manager;or Miniforge, which provides:
condaenvironment and package manager.
Anaconda and Miniconda
Anaconda or Miniconda may be used to provide the conda manager, as long as the environment is configured to use the conda-forge channel.
Installation¶
The following commands must be run from the system’s command line interface (e.g. git-bash, cmd, powershell).
If using venv + pip¶
Create a new venv:
python -m venv optiwindnet_env
Activate optiwindnet_env (choose the one that matches your command prompt):
cmd:
optiwindnet_env\Scripts\activate.batbash:
source optiwindnet_env/Scripts/activatepowershell:
optiwindnet_env\Scripts\Activate.ps1
And finally:
pip install optiwindnet
If using conda¶
conda create --name optiwindnet_env python=3.12 optiwindnet
conda activate optiwindnet_env
Optional - Solvers¶
The installation procedure above enables OptiWindNet’s heuristics, meta-heuristic and mathematical optimization with Google’s OR-Tools (open-source software).
Other solvers can be used for mathematical optimization, but they are not installed by default.
The commands suggested here assume that the Python environment for OptiWindNet has been already activated and that conda is configured for the conda-forge channel.
For packages that are installable with both pip and conda, enter only one of the commands.
Solvers perform a search accross the branch-and-bound tree. This process can be accelerated in multi-core computers by using concurrent threads, but not all solvers have this feature. As of Mar/2025, only gurobi, cplex and cbc have this multi-threaded search capability. The ortools solver also benefits from multi-core systems by launching a portfolio of algorithms in parallel, with some information exchange among them.
Gurobi¶
Gurobi is proprietary software (academic license available). The trial version can only handle very small problems:
pip install gurobipy
conda install -c gurobi gurobi
CPLEX¶
IBM ILOG CPLEX is proprietary software (academic license available). The Community Edition version can only handle very small problems:
pip install cplex
HiGHS¶
HiGHS is open source software:
pip install highspy
conda install highspy
SCIP¶
SCIP is open source software:
conda install scip
CBC¶
COIN-OR’s Optimization Suite is open source software and its MILP solver is coin-or/Cbc: COIN-OR Branch-and-Cut solver.
Pyomo’s interface with CBC is through a system call, so it does not need to be part of a python environment, but Pyomo must be able to find the solver’s executable file. Conda has a package for it, but it may also be installed by following the instructions in the links above:
conda install coin-or-cbc
Updating¶
Activate the Python environment for OptiWindNet and enter:
pip install --upgrade optiwindnet