Install the Python Library & CLI

The Syside Python Library & CLI installs from Sensmetry’s Python Package Index into your project’s Python environment (Python 3.12.4 or newer), and requires a paid plan before it will run. See Minimum requirements for everything it needs, and Set up a virtual environment if the project has no environment yet.

Optional features are available as extras:

  • syside[ipython] – Interactive mode, to answer small questions not requiring a full Python script

  • syside[reqif] – ReqIF, to move requirements from and to requirements management tools Labs

  • syside[solver] – Solver, to execute your models Labs

  • syside[all] – install all optional features

uv add syside==1.0.0b1 --pre --index-url https://gitlab.com/api/v4/projects/69960816/packages/pypi/simple
pip install --pre syside==1.0.0b1 --extra-index-url https://gitlab.com/api/v4/projects/69960816/packages/pypi/simple

Activate license

The Python library validates the license each time import syside is called, and each check reaches our licensing servers. Licensing covers what that needs, and What data we collect lists what is sent and what you can turn off.

Store the license key in one of the following locations, or import a license file where the servers are unreachable. Keep the key private: an exposed key risks unauthorized use or revocation of the license.

On a desktop, the operating system’s secret storage (Windows Credential Store, macOS Keychain, or GNOME Keyring on Linux) holds the key per user, for every project, outside code and configuration.

With the Syside VS Code Extension, open the Command Palette (Ctrl/Cmd+Shift+P) and run Syside: Add Syside license key to keyring. The command copies the key the extension holds, or asks for one when it has none yet.

Without the extension, store it with the syside-license tool, which needs Python 3.12 or newer and asks for the key:

uvx syside-license keyring store
pip install syside-license
syside-license keyring store

For local development, create a .env file in the project root containing your license key:

SYSIDE_LICENSE_KEY=<your-license-key>

Add .env to your .gitignore so the key is never committed.

Set SYSIDE_LICENSE_KEY in the shell you run Syside from. The setting lasts only for that shell session. To make it permanent, set it in your shell’s profile or your system’s environment settings. It is also the route where there is no secret storage, such as a Docker container or WSL.

On Windows (PowerShell):

$env:SYSIDE_LICENSE_KEY = "<your-license-key>"

On macOS or Linux:

export SYSIDE_LICENSE_KEY=<your-license-key>

A pipeline takes the Business plan’s CI/CD license. Store it as SYSIDE_LICENSE_KEY: in GitLab as a masked CI/CD variable, in GitHub as a repository secret.

On a machine that cannot reach our licensing servers, import a license file instead: Offline license covers getting, carrying over and importing it.

Verify installation

Check that the module imports:

python -c "import syside; print(syside.__version__)"

You should see the installed version. With uv, prefix the command with uv run.

ModuleNotFoundError means this shell is not using the environment you installed into: activate it. A license error means no valid key was found: revisit Activate license.

Continue to Your first Python example, or start at Troubleshooting if something did not work.

Update the Python Library & CLI

Updating keeps your license activation.

uv sync --upgrade-package syside
pip install syside --upgrade

Install offline

Download the wheels, the .whl files pip installs from, on a connected machine, carry them over, and install from them. Both machines need Python 3.12.4 or newer, the offline one with uv or pip as well, since the wheels bring neither. Where the offline machine cannot reach our licensing servers either, it takes a license file rather than a key: see Offline license.

Download the wheels

On the connected machine, run the line for the offline machine’s platform, or every line to cover them all. Name any extra you use in place of syside, as in syside[ipython]:

uvx pip download --only-binary=:all: --platform win_amd64 syside
uvx pip download --only-binary=:all: --platform win_arm64 syside
uvx pip download --only-binary=:all: --platform macosx_11_0_arm64 syside
uvx pip download --only-binary=:all: --platform macosx_10_13_x86_64 syside
uvx pip download --only-binary=:all: --platform manylinux_2_31_x86_64 syside
pip download --only-binary=:all: --platform win_amd64 syside
pip download --only-binary=:all: --platform win_arm64 syside
pip download --only-binary=:all: --platform macosx_11_0_arm64 syside
pip download --only-binary=:all: --platform macosx_10_13_x86_64 syside
pip download --only-binary=:all: --platform manylinux_2_31_x86_64 syside

Install from the wheels

On the offline machine, install from the directory the wheels were carried to, naming the same extras:

uv add --no-index --find-links "<path/to/wheels>" syside
pip install --no-index --find-links "<path/to/wheels>" syside

Minimum requirements

  • A paid plan

  • Linux x64 distribution with GNU C Library glibc >= 2.31

    Check yours with ldd --version. The first line ends with the glibc version, as in ldd (Ubuntu GLIBC 2.39-0ubuntu8.8) 2.39.

  • Python 3.12.4 or newer, 64-bit

  • Internet connection, or wheels carried over with an offline license