0

我似乎收到了与 visa.ResourceManager.get_instrument() 命令相关的“异常忽略:”警告消息。但是,我不明白为什么我会收到警告。

  • 请注意,没有与警告相关的方法或类或任何其他内容。这让我觉得当我的脚本退出时它正在发生。
  • 我可以通过注释掉代码中的“self.rm.get_instrument()”行来消除警告。

即使出现警告,从中提取此代码的脚本也似乎可以正常运行。然而,有一个我不明白的警告让我很紧张。

我的代码示例如下。我正在使用 Python 3.5.1 和 Visa 1.8。

关于警告根本原因的建议将不胜感激。

编辑:我添加了我收到的警告(?)消息,格式为代码。

import visa


class TestEquipment:
    def __init__(self, usbAddress='-1'):
        self.rm = visa.ResourceManager()
        # The following line appears to cause an "Exception ignored in:" warning.
        #   - If I comment-out the line, the warning goes away.
        self.my_instrument = self.rm.get_instrument(usbAddress)


class SpecificInstrument(TestEquipment):
    def __init__(self, usbAddress='-1'):
        TestEquipment.__init__(self, usbAddress=usbAddress)

if __name__ == '__main__':
    usb_address = 'USB0::0x0957::0x9018::MY52350569::INSTR'  # Hard-coded USB address for my borrowed instrument
    FieldSource = SpecificInstrument(usbAddress=usb_address)

这是我收到的警告(?)消息。

Exception ignored in: 
Process finished with exit code 0
4

1 回答 1

0

根据 jasonharper 在评论中的建议,解决方案是:

    FieldSource = SpecificInstrument(usbAddress=usb_address)  # Existing code
    # FieldSource.close()  # Doesn't work.  AttributeError: 'SpecificInstrument' object has no attribute 'close'
    # FieldSource.rm.close()  # No error but still get the "Exception ignored in" warning
    FieldSource.my_instrument.close()  # Success!  No more "Exception ignored in:" warning message!

请注意,我已经包含(作为评论,为了完整起见)几个没有导致解决方案的错误开始。

于 2020-08-17T11:57:14.953 回答