PyInstruments is a central reference point for the various Python-based experimental data collection frameworks.
Contributions are welcome, either in the form of pull requests which update and expand the information below, or in the form of discussion in the Issues. Contributions to the frameworks themselves are also welcome, but should be submitted through the relevant project's github page, and not this repository.
Below are several packages under active development, listed in alphabetical order.
Instrumental is a Python-based library for controlling lab hardware like cameras, DAQs, oscilloscopes, spectrometers, and more. It has high-level drivers for instruments from NI, Tektronix, Thorlabs, PCO, Photometrics, Burleigh, and others. Instrumental's goal is to make common tasks simple to perform, while still providing the flexibility to perform complex tasks with relative ease.
url: https://github.com/mabuchilab/Instrumental
docs: http://instrumental-lib.readthedocs.org/en/latest/
drivers: https://github.com/mabuchilab/Instrumental/tree/master/instrumental/drivers
Labdrivers contains a suite of instrument-specific drivers which can be used to interface measurement hardware with Python code, along with a set of Jupyter notebooks demonstrating example use cases.
url: https://github.com/masonlab/labdrivers
docs: https://labdrivers.readthedocs.io/en/latest/
drivers: https://github.com/masonlab/labdrivers/tree/master/labdrivers
Lantz is an automation and instrumentation toolkit with a clean, well-designed and consistent interface. It provides a core of commonly used functionalities for building applications that communicate with scientific instruments allowing rapid application prototyping, development and testing. Lantz benefits from Python's extensive library flexibility as a glue language to wrap existing drivers and DLLs.
url: https://github.com/awsch/lantz/tree/drivers_develop
docs: http://lantz.readthedocs.org/en/0.3/
drivers: https://github.com/awsch/lantz/tree/drivers_develop/lantz/drivers
PyMeasure makes measurements easy to set up and run. The package is composed of two parts: (1) a repository of instruments classes that make communicating and taking data easy, and (2) a system for running experiment procedures and graphing their data live.
url: https://github.com/ralph-group/pymeasure
docs: http://pymeasure.readthedocs.org/en/latest/
drivers: https://github.com/ralph-group/pymeasure/tree/master/pymeasure/instruments
QCoDeS is a Python-based data acquisition framework developed by the Copenhagen / Delft / Sydney / Microsoft quantum computing consortium. While it has been developed to serve the needs of nanoelectronic device experiments, it is not inherently limited to such experiments, and can be used anywhere a system with many degrees of freedom is controllable by computer.
url: https://github.com/QCoDeS/Qcodes
docs: https://qcodes.github.io/Qcodes/
drivers: https://github.com/QCoDeS/Qcodes/tree/master/qcodes/instrument_drivers
Non-maintained fork of the QT Lab environment.
url: https://github.com/govenius/qtlab
docs: https://github.com/govenius/qtlab/blob/aalto/MANUAL
drivers: https://github.com/govenius/qtlab/tree/aalto/instrument_plugins