Python 如何保持与pyvisa py的连接?闲置5分钟后管道破裂

Python 如何保持与pyvisa py的连接?闲置5分钟后管道破裂,python,python-3.x,sockets,broken-pipe,pyvisa,Python,Python 3.x,Sockets,Broken Pipe,Pyvisa,我目前正在安装NI VISA的Windows PC上连接VISA instruments,并试图切换到Ubuntu 18上的Docker容器,使用pyvisa pyasvisalib。从国家工具切换到开源解决方案后,所有代码仍然可以正常工作,但不知何故,到工具的会话并没有保持活跃 我的连接是通过连接pyvisa py的vxi11接口完成的,据我所知,该接口扩展了rcp协议。如果我没有使用此设备超过5分钟,远程设备会关闭连接(与套接字的正常情况一样),我会收到以下错误: BrokenPipeErr

我目前正在安装NI VISA的Windows PC上连接VISA instruments,并试图切换到Ubuntu 18上的Docker容器,使用
pyvisa py
as
visalib
。从国家工具切换到开源解决方案后,所有代码仍然可以正常工作,但不知何故,到工具的会话并没有保持活跃

我的连接是通过连接
pyvisa py
的vxi11接口完成的,据我所知,该接口扩展了
rcp
协议。如果我没有使用此设备超过5分钟,远程设备会关闭连接(与套接字的正常情况一样),我会收到以下错误:

BrokenPipeError: [Errno 32] Broken pipe
此问题在我的系统上是100%可复制的,代码如下:

将pyvisa导入为visa
导入时间
rm=visa.ResourceManager(“@py”)
原始安装=rm.open安装资源('TCPIP0::10.0.1.21::安装0::安装')
原始仪器查询(':OUTP:STAT?'))
时间。睡眠(60*6)
原始仪器查询(':OUTP:STAT?'))
我已经在
PyVisa
PyVisa py
包中搜索了一些选项来启用keepalive功能,但我找到的最接近的是
PyVisa py.tcpip.tcpiinstrsession
中的这些行

if attribute==constants.VI\u ATTR\u TCPIP\u KEEPALIVE:
引发未实现的错误
此外,当我深入研究源代码时,在所有文件中没有一个地方可以找到神奇的代码行
socket.SO\u KEEPALIVE


这就提出了一个问题:keepalive软件包是从
PyVisa
中的其他地方发送的,还是该选项还没有实现?

这个问题很可能是docker连接有问题。如果你有类似的问题,也许可以帮助你。