# Installation URL: /installation Install OpenHTF with pip on Windows, Linux or macOS. Supported Python versions, optional extras for USB and serial plugs, virtual environments, and common install errors. OpenHTF is a pure-Python package published on PyPI as `openhtf`. Python **3.10 or newer** (OpenHTF 1.6.x). The last release for Python 3.7–3.9 is 1.5.2. OS Windows, Linux, macOS. Colored console output uses `colorama` and works on all three. Browser Any modern browser for the Operator UI; it is served by the test process. Use a virtual environment per test station or per project so instrument-library versions stay pinned: Check the install: The core package has no hardware dependencies. Extras pull in the libraries the bundled plugs need: Extra Installs Enables `openhtf[usb-plugs]` `libusb1`, `M2Crypto` `openhtf.plugs.usb`: ADB and Fastboot over USB (Android DUTs). `openhtf[serial-collection-plug]` `pyserial` `openhtf.plugs.generic.serial_collection.SerialCollectionPlug`. `openhtf[examples]` `pandas` The upstream `measurements.py` example (`to_dataframe()`). `openhtf[update-units]` `xlrd` Only for regenerating `units.py` from the UNECE spreadsheet; not needed to use units. Your own plugs bring their own libraries: `pip install pyvisa pyvisa-py` for SCPI instruments, `pyserial` for serial DUTs, `pymodbus` for PLCs. A station should not pick up a new OpenHTF release by accident. Pin it in `requirements.txt`: Every page on this site states which release its examples were verified against; Releases lists what changed between versions. To try unreleased fixes from `master`: