python 新版本 mDNS库 ServiceInfo 类的构造函数已经改变,不再接受 address 参数怎么解决
时间: 2024-02-28 21:56:25 浏览: 106
Python库 | anubi.mdns-0.0.4a0.tar.gz
如果你使用的是新版本的 python mDNS 库,而你的代码中使用了旧版本的 ServiceInfo 类构造函数,并且传递了 `address` 参数,那么你可以通过以下两种方法解决此问题:
1. 使用新的 ServiceInfo 类构造函数
新版本的 ServiceInfo 类构造函数不再接受 `address` 参数,而是接受一个 `host` 参数,你可以将 `address` 参数的值作为 `host` 参数传递给构造函数。示例如下:
```python
from zeroconf import ServiceInfo
info = ServiceInfo(
"_http._tcp.local.",
"My Web Server._http._tcp.local.",
addresses=[socket.inet_aton("192.168.1.100")],
port=80,
properties={},
host="192.168.1.100"
)
```
2. 降级到旧版本的 python mDNS 库
如果你的代码中使用了很多旧版本的 ServiceInfo 类构造函数,并且修改起来比较麻烦,那么你可以考虑降级到旧版本的 python mDNS 库。你可以通过 `pip` 命令安装指定版本的库,示例如下:
```shell
pip install zeroconf==0.30.0
```
这样就可以安装旧版本的 zeroconf 库了。但是请注意,降级到旧版本可能会导致其他问题,请谨慎使用。
阅读全文