python mDNS应该安装哪个库
时间: 2023-07-05 10:26:38 浏览: 393
Python中有两个流行的mDNS库:
1. `zeroconf`库:这是一个纯Python实现的mDNS库,可以用于服务发现和解析。它支持广告服务、发现服务和查询服务,易于使用和部署。你可以使用pip安装它:`pip install zeroconf`
2. `python-avahi`库:这是一个基于Avahi守护进程的Python绑定库,支持在Linux系统上运行的mDNS解析和发现。你可以使用pip安装它:`pip install python-avahi`
这两个库都是很好的选择,具体使用哪个库取决于你的需求和操作系统。如果你需要在Linux系统上运行mDNS服务,那么`python-avahi`库是一个不错的选择。如果你需要在其他平台上运行mDNS服务,那么`zeroconf`库是个好的选择。
相关问题
python mDNS 报错ServiceInfo.__init__() got an unexpected keyword argument 'address'
这个错误通常是因为你使用的 python mDNS 库版本不同导致的。在较新的版本中,ServiceInfo 类的构造函数已经改变,不再接受 `address` 参数。
解决方法是使用正确的参数调用构造函数。你可以查看你使用的 python mDNS 库的文档,找到正确的构造函数参数列表。
另外,你也可以尝试升级你的 python mDNS 库到最新版本,这可能会解决这个问题。
python 新版本 mDNS库 ServiceInfo 类的构造函数已经改变,不再接受 address 参数怎么解决
如果你使用的是新版本的 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 库了。但是请注意,降级到旧版本可能会导致其他问题,请谨慎使用。
阅读全文