# Install plesty-lib needs Python 3.12 or later. Add it to your project with [uv](https://docs.astral.sh/uv/) or pip: ```bash uv add plesty-lib # or: pip install plesty-lib ``` The basic install is enough to write and use devices, experiments and analyzers (see [Quick Start](quickstart/index.md)). It brings the packages those need: `numpy` for arrays, `pyvisa`, `pyserial` and `pyusb` to reach instruments, `pyzmq` to use them over the network, and `pyyaml` to read settings files. ## Extras Some features need large packages that most computers running plesty-lib do not want. A computer that only runs an instrument, for example, has no use for a GUI toolkit. These features are **extras**: you install them only by naming them in square brackets. | Extra | Installs | For | |---|---|---| | `gui` | `pyside6`, `pyqtgraph` | windows: device control panels and the viewer that plots a running measurement | | `record` | `pillow`, `imageio`, `imageio-ffmpeg` | saving a measurement's plots as a video (MP4, or GIF with Pillow alone) | | `report` | `latex2mathml` | showing equations in reports opened as HTML; without it they appear as LaTeX source | | `fit` | `scipy` | fitting peaks in a spectrum (`SpectrumFit`) | | `hdf5` | `h5py` | converting saved results into one HDF5 file (`plesty.lib.data.io.convert_to_hdf5`) | Name one or several: ```bash uv add "plesty-lib[gui]" uv add "plesty-lib[gui,record]" pip install "plesty-lib[gui,record]" ``` If you use a feature without its extra, plesty-lib stops with an error that names the extra to install. ## Tools for publishing a module To publish your own device, experiment or analyzer as a PLESTY module, you also need plesty-sdk, PLESTY's developer tool. It creates the files a new module starts with and checks a module against the PLESTY standard before it is published. You only need it while developing, not to run anything: ```bash uv add --dev plesty-sdk ```