Linux Setup
Install PyVISA
Install the python3-pyvisa
package using apt
.
sudo apt update sudo apt install -y python3-pyvisa
Note: installing PyVISA using pip only inside a venv will not work. The package needs to be installed system-wide first.
Test your setup
In the terminal:
python3 -c "import pyvisa; print(pyvisa.ResourceManager('@py').list_resources())"
You should see a list containing your device in the format INTERFACE::VID::PID::SN::INSTR
.
Method Using the NI-VISA Backend
Install these if you still do not see your device, for most interfaces pyvisa-py is sufficient.
Step 1: Get the NI-VISA driver and backend
- Download the NI package: Visit the NI-VISA download page. Unfortunately, registration is needed. Extract the archive, you should see
.deb
packages.
Step 2: Install NI-VISA for your distribution
-
Install NI-VISA: Example for Ubuntu: install the downloaded
.deb
package usingdpkg
. There are two packages, a "stream" and fixed quarterly version. Use the fixed quarterly version for reproductibility.sudo dpkg -i ni-visa_20*.deb sudo apt update sudo apt install -y ni-visa
Step 3: Configure PyVISA to Use NI-VISA Backend
- Set NI-VISA Backend: Ensure that PyVISA uses the NI-VISA backend.
You can also provide a direct library path, for example:
import pyvisa rm = pyvisa.ResourceManager('@ni')
/usr/lib/x86_64-linux-gnu/libvisa.so
. The path for pyvisa-py is@pi
.
Step 4: Verify Device Connection
-
Use visaconf Utility: Use the
visaconf
NI terminal utility to check your device's connection. -
In Python:
python3 -c "import pyvisa; print(pyvisa.ResourceManager('@py').list_resources())"
Virtual Environment (venv)
The python3-pyvisa
and python3-pyvisa-py
packages must be installed system-wide. After a venv can be used. Installing them in a virtual environment only will not work.
Commands for installing in a venv:
pip install PyVISA PyVISA-py
Note: installing the python3-pyvisa
package also installs python3-pyvisa-py
in debian-based distributions by default.
PyVisa-py
is a Python VISA backend that replaces the NI backend.
Notes
- Firewall Settings: For Ethernet devices, ensure your firewall settings allow communication with the instrument.
- Windows Fast Startup Interference: Windows Fast Startup can prevent interfaces to reset properly and interfere with device detection.
- Some devices expect termination characters at the end of the commands. Please refer to the dedicated section on the Interfaces page.