Python не подцепает устройство измерения Agilent B1500 по GPIB

Пытаюсь провести измерения с помощью Agilent B1500, написав код в python, используя библиотеку pymeasure 0.9.0.

Проверка подключенных к компьютеру устройств:

rm = pyvisa.ResourceManager()
print (rm.list_resources())

Выполняется и выдает: ('GPIB0::10::INSTR', 'GPIB0::22::INSTR', 'GPIB0::28::INSTR')

По адресу 'GPIB0::10::INSTR' и находится мой Agilent B1500. Импортируя библиотеку и присваивая значение:

from pymeasure.instruments.agilent import agilentB1500
b1500 = agilentB1500("GPIB0::10::INSTR", read_termination='\r\n', write_termination='\r\n', timeout=100000) 

Появляется ошибка:

Traceback (most recent call last):
  line 11, in <module>
    b1500 = agilentB1500("GPIB0::10::INSTR", read_termination='\r\n', write_termination='\r\n', timeout=100000)
TypeError: 'module' object is not callable

Подскажите как побороть данную ошибку...

Мой файл agilentB1500.py находится по адресу C:\Users\admin\AppData\Local\Programs\Python\Python37\Lib\pymeasure\instruments\agilent

Версия установленных модулей:

importlib-metadata==4.0.1
numpy==1.20.2
pandas==1.2.4
PyMeasure==0.9.0
pyqtgraph==0.12.1
pyserial==3.5
python-dateutil==2.8.1
pytz==2021.1
PyVISA==1.11.3
six==1.15.0
typing-extensions==3.7.4.3
zipp==3.4.1

Ответы (1 шт):

Автор решения: gil9red

В этой строке from pymeasure.instruments.agilent import agilentB1500 объект agilentB1500 является модулем, потому что в пакете agilent/ есть agilentB1500.py. Но в файле __init__py пакета agilent/ уже есть импорт класса AgilentB1500, поэтому можно из пакета сделать импорт класса (пример ниже из документации):

...
from .agilentB1500 import AgilentB1500

Из примера документации импорт должен быть такой:

from pymeasure.instruments.agilent import AgilentB1500

Тогда:

b1500 = AgilentB1500("GPIB0::10::INSTR", read_termination='\r\n', write_termination='\r\n', timeout=100000)

PS.

А так, можно импортировать самостоятельно напрямую из модуля:

from pymeasure.instruments.agilent.agilentB1500 import AgilentB1500
→ Ссылка