The programming of measurement instruments can be real pain. There are many different protocols, sent over many different interface and bus systems. For every programming language you want to use, you have to find libraries that support both your device and its bus system.
In order to ease this unfortunate situation, the VISA  specification was defined in the middle of the 90ies. Today VISA is implemented on all significant operating systems. A couple of vendors offer VISA libraries, albeit mostly in binary form.
These libraries work together with arbitrary peripherical devices, although they may be limited to certain interface devices, such as the vendor's GPIB card. Virtual Instrument Software Architecture
The VISA specification has explicit bindings to Visual Basic, C, and G (LabVIEW's graphical language). However, you can use VISA with any language capable of calling functions in a DLL. Python is such a language.
PyVISA project is a VISA binding for Python. In relies on an external library file that you can download from your interface vendor's web pages (National Instruments, Agilent, etc). PyVISA implements a convenient and Pythonic access to this library in two layers:
1. First, there is the lower level vpp43, which directly calls the VISA functions from Python. See the PyVISA low-level implementation for more information.
2. On top of it, an object-oriented Python module has been created called visa simply. In case of doubt, use visa because it is easier and more convenient. vpp43 is only for people who need full control or the official VISA functions for some reason. See the PyVISA manual for more information.
What's New in This Release:
Â· Some timeout errors passed silently.
Â· Some older VISA DLLs caused trouble because some functions were missing in them.
Â· Both issues are fixed.