Installation#

Not on PyPI yet

instrumentserver is not published on PyPI yet (a release is planned). For now, every install comes straight from the GitHub repository.

Requirements#

You need Python 3.11 or newer. That’s the same floor as QCoDeS, which instrumentserver is built on.

The recommended starting point is a local clone of the repository. In a terminal, cd to the directory where you want the clone to live (the command below creates an instrumentserver folder right where you run it), then:

git clone https://github.com/toolsforexperiments/instrumentserver.git

We recommend an editable installation of that clone: updating to the latest version is then just a git pull away, and you can read (or tweak) the code you’re actually running. (If you’d rather skip the clone, the uv tab below has a clone-free alternative.)

Installing#

Pick the tab that matches how you manage your Python environments. We recommend uv.

With uv, instrumentserver becomes a dependency of the project you run your measurements from. From inside that project, add your local clone as an editable dependency:

uv add --editable path/to/instrumentserver

This records the dependency in your project’s pyproject.toml and installs it into the project environment. After a git pull in the clone, your project picks up the new version automatically.

If you’d rather not keep a local clone, you can add it as a git dependency instead:

uv add git+https://github.com/toolsforexperiments/instrumentserver.git

Updating then means running uv lock --upgrade-package instrumentserver.

We recommend one conda environment per measurement setup, with instrumentserver installed alongside the rest of your measurement stack. Conda doesn’t ship instrumentserver as a package, so the installation goes through pip, inside the right environment:

conda activate your-measurement-env
pip install -e path/to/instrumentserver

Double-check which environment is active before installing. A correct installation in the wrong environment is the classic way to end up with “but I installed it!” confusion.

The standard-library route: create a virtual environment, activate it, and install the clone in editable mode.

python -m venv .venv
source .venv/bin/activate  # on Windows: .venv\Scripts\activate
pip install -e path/to/instrumentserver

Optional: monitoring extra#

If you plan to export instrument parameter changes to InfluxDB (see the monitoring guide), install the monitoring extra, which adds the influxdb-client package:

pip install -e "path/to/instrumentserver[monitoring]"

Or with uv:

uv add --editable path/to/instrumentserver --extra monitoring

Check that it worked#

The installation puts five command line tools on your path. Ask the main one for help:

instrumentserver --help

If you see the usage message, you’re done. Head to the quickstart to start a server and talk to your first instrument.