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 шт):
В этой строке 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