Skip to main content


There is a configuration submodule that allows changing a few settings for those adventurous enough to use CYTools in a non-standard way, such as using it with a Singularity image, having a custom installation without a Docker image, or if you want to try some experimental features.

Activating Mosek in a pre-built image

There can be cases when we need to activate Mosek with the license file placed in a non-standard location. To do this we need to point CYTools to look for the image in the right path. We do so as follows. Let's say that you have your Mosek license in /home/YOURUSERNAME/Documents/mosek/mosek.lic. Recall that by default CYTools mounts /home/YOURUSERNAME/ to /home/cytools/mounted_volume/. Thus, the path to the license in the container will be /home/cytools/mounted_volume/Documents/mosek/mosek.lic. The way we set this path within CYTools is as follows.

import cytools

Once we run the above commands it will tell us if there was a problem with the Mosek license. If no message is shown then it means that it was successfully activated.


If you are also using a custom mount path for either the host or the container then you need to make sure that the location of the license is accessible from the container and that you use the right path. For more discussion about how volume mouting works you can see the advanced usage page or the Docker documentation.

Paths to External Software

The paths to external software are stored in the following variables of the config submodule.

  • cgal_path: The directory that contains the CGAL binaries.
  • topcom_path: The directory that contains the TOPCOM binaries.
  • palp_path: The directory that contains the PALP binaries.

These can be changed in the following way.

import cytools
cytools.config.cgal_path = "/your/custom/path/"

As with the Mosek license, you have to be aware that the path on your host machine will in general be different to the path in the container.

Experimental Features

There are a few experimental features that are locked by default since they haven't been through enough testing. They can be enabled as follows.

import cytools

More details can be found in the experimental features section.