Skip to content

Installation

Requirements

  • Network access to your TM1 / Planning Analytics server
  • For the web UI: a modern browser (Chrome, Firefox, Edge, Safari)
  • For an install from source: Python 3.11 or newer

From source

git clone https://github.com/cubewise-code/optimus-py.git
cd optimus-py
pip install -e .

This installs the dependencies (TM1py 2.3.0 or later, mdxpy and XlsxWriter). -e installs in editable mode, so code changes take effect without reinstalling. The optimuspy and python -m optimuspy commands both become available.

Verify the install:

optimuspy --help

Prebuilt bundles

Use a bundle when you cannot install Python (locked-down servers, kiosk environments, etc.). Each release on the Releases page carries three bundles: optimuspy-windows.zip, optimuspy-linux.tar.gz (x86-64) and optimuspy-linux-arm64.tar.gz. Each unpacks to an optimuspy/ folder holding the executable, config/config.ini.example, config/settings.ini.example (see Settings File), samples/ (example cube configs) and BUILD_INFO.txt, which names the version and the commit the bundle was built from.

The latest release's bundles are rebuilt whenever a change is merged to master between releases, so a download can hold fixes that came after the release's version. BUILD_INFO.txt shows which commit it is.

Windows

  1. Download optimuspy-windows.zip from the latest release on the Releases page.
  2. Unzip it. The optimuspy/ folder holds optimuspy.exe, config/config.ini.example, config/settings.ini.example, samples/ (example cube configs) and BUILD_INFO.txt.
  3. Copy config/config.ini.example to config/config.ini and fill in your TM1 instances, or link the config.ini you already have under Settings. Double-click optimuspy.exe to open the web UI.

Linux

  1. Download the bundle for your machine's processor from the Releases page. uname -m tells you which one:

    • x86_64: optimuspy-linux.tar.gz;
    • aarch64: optimuspy-linux-arm64.tar.gz, for ARM servers and for Linux VMs on an Apple Silicon Mac.

    The x86-64 bundle doesn't run on aarch64, even where the system can emulate x86-64: it stops at startup with Failed to create parent directory structure or a segmentation fault. 2. Unpack it and start the executable:

    tar -xzf optimuspy-linux.tar.gz   # or optimuspy-linux-arm64.tar.gz
    cd optimuspy
    ./optimuspy
    

    With no arguments it opens the web UI. The UI listens on 127.0.0.1 only, so open it in a browser on the same machine. Copy config/config.ini.example to config/config.ini and fill it in, or link the config.ini you already have under Settings; the command line reads the same file, for example ./optimuspy scan --instance <name>.

Every Build Executable run on the Actions tab also keeps its bundles as the optimuspy-windows, optimuspy-linux and optimuspy-linux-arm64 artifacts, which is how to get a build of another branch. GitHub delivers an artifact as a zip, which does not keep the executable bit: after unzipping a Linux one, run chmod +x optimuspy/optimuspy.

Next step

Configure your first TM1 connection: TM1 Connection →