OK, I'm happy to report that I've managed to do a full calibration on my DP832(A) with my Keysight 34461A using the PyCharm/Python 3.8 setup.
Here's a few notes if you're trying to follow in my footsteps.
1. You HAVE to download Python from
https://www.python.org/downloads/release/python-380/ DO NOT DOWNLOAD THE VERSION THAT MICROSOFT OFFERS FROM THE SEARCH WINDOW
2. Then, install PyCharm (which is just an IDE front end) and it will (eventually) find the interpreter that's installed by step 1*.
3. Add the 3 packages*:
python-ivi (modified with the
files attached to this post)
python-vxi11
numpy
The modified files had to go into this directory for me on Windows 10...
C:\Users\ted\AppData\Local\Temp\calibrate.py\venv\Lib\site-packages\ivi\agilent
One file (__init__.py) will replace the one that's already there, the other 2 will be new to the folder
4. When you run the code, all goes well until the first time you are asked to connect to the 10A terminals of the 34461A for the first current test; the issue is that the meter defaults to the 3A terminals (there's a soft button bottom left of the 34461A's screen that toggles between the 3A and 10A terminals). So my first run was hosed because it was reading the 3A terminals while the current was connected to the 10A terminals (the datasheet for the 34461A says that the max current into the 3A terminal is 3A!). I fixed it by rerunning and, when it asked to connect to the 10A terminals, I pressed the following buttons on the 34461A... (shift) (shift) (DCI) - soft button for 10A - there are 2 shifts because the first time you press it, it doesn't work but gets the meter out of remote mode - don't worry as the code takes over once you start it again. The ideal fix for this would be for there to be an extra command in the .py code to put the 34461A into 10A terminal selection. I was prepared to do this for subsequent channel Amps tests but it seemed like the meter remembered that I wanted to use the 10A terminals.
5. Each time I reran the code, it looked like the errors were still there (huge) but this is likely because each old calibration is wiped before it starts each new run.
The Java code provided by Garrettm DOES NOT WORK WITH THE 34461A! DO NOT USE IT (unless it gets fixed) AS IT WILL HOSE YOU DP832(A)'s CAL. I appreciate that he was trying to help.
MANY THANKS TO JDubU for his assistance with getting the Python code running
* See the details in the previous 2 pages from JDubU