For SCPI programming in python, Is it necessary to install a NI-VISA back-end if you are trying to iterface with a non-National Instruments device?
If you want to use PyVisa, you will need some kind of Visa library for it to use to communicate with your instruments.

If your instruments are GPIB instruments, you need to use the Visa library from the company that made the device your PC uses to connect to the GPIB bus. Traditionally, this was an ISA or PCI card, but nowadays it is more often a USB-GPIB bridge. In any of these case, the Visa (and sometimes another underlying vendor library) are what knows how to command these devices to produce GPIB transactions. 

If your instruments are LXI (LAN eXtensions for Instrumentation) or USB controlled devices, it won't matter which vendor's Visa you use, but you'll still need a Visa to use PyVisa, because the Visa API is the only API PyVisa knows how to use to communicate with instruments.

If your instruments are USB-controlled, you might be able to do away with Visa and use the instrument vendor's proprietary libraries to communicate with the instrument. But you also would have to give up PyVisa and write your own Python wrapper for the proprietary library's API.

Presumably you could also dispense with Visa for an LXI instrument, but it would basically require learning the LXI protocol and writing something very much like the Visa library in Python.