首页 > 解决方案 > 珊瑚开发板 Windows 10 设置

问题描述

我遵循了https://coral.ai/docs/dev-board/get-started/中描述的 Windows 主机说明

当我运行命令 mdt devices 时,我总是得到以下异常:

$ mdt devices
Traceback (most recent call last):
  File "c:\users\ram\anaconda3\lib\runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\ram\anaconda3\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\Ram\AppData\Roaming\Python\Python38\Scripts\mdt.exe\__main__.py", line 7, in
<module>
  File "C:\Users\Ram\AppData\Roaming\Python\Python38\site-packages\mdt\main.py", line 162, in
main
    exit(command.run(sys.argv[1:]))
  File "C:\Users\Ram\AppData\Roaming\Python\Python38\site-packages\mdt\devices.py", line 43, i
n run
    self.discoverer.discover()
  File "C:\Users\Ram\AppData\Roaming\Python\Python38\site-packages\mdt\discoverer.py", line 40
, in discover
    self.zeroconf = Zeroconf()
  File "C:\Users\Ram\AppData\Roaming\Python\Python38\site-packages\zeroconf\__init__.py", line
 2508, in __init__
    self._listen_socket, self._respond_sockets = create_sockets(
  File "C:\Users\Ram\AppData\Roaming\Python\Python38\site-packages\zeroconf\__init__.py", line
 2343, in create_sockets
    respond_socket = new_respond_socket(i, apple_p2p=apple_p2p)
  File "C:\Users\Ram\AppData\Roaming\Python\Python38\site-packages\zeroconf\__init__.py", line
 2302, in new_respond_socket
    respond_socket = new_socket(
  File "C:\Users\Ram\AppData\Roaming\Python\Python38\site-packages\zeroconf\__init__.py", line
 2250, in new_socket
    s.bind((bind_addr[0], port, *bind_addr[1:]))
OSError: [WinError 10049] The requested address is not valid in its context

我的设置版本:

$ python --version
Python 3.8.5

$ mdt version
MDT version 1.5.2

你能帮我解决这个问题吗?

标签: google-coral

解决方案


同样的事情发生在我身上。跳过一些 IP 地址解决了这个问题。试试这个代码:

import logging
import zeroconf
import ifaddr

for adapter in ifaddr.get_adapters():
    print("IPs of network adapter ", adapter.nice_name)
    for ip in adapter.ips:
        print("   %s/%s", ip.ip, ip.network_prefix)

logging.basicConfig(level=logging.DEBUG)
logging.getLogger("zeroconf").setLevel(level=logging.DEBUG)
z = zeroconf.Zeroconf()

从日志中,找到

INFO:zeroconf:Address not available when add XXX.XXX.XX.XX to multicast group,预计在某些系统上会发生

除了 Zeroconf 日志,还应该有一个 IP 地址和名称列表。请找到导致问题的硬件的名称。

现在,打开zeroconf/__init__.py并转到get_all_addresses()并用下面的代码替换

adapters = [x for x in ifaddr.get_adapters() 
    if not "Microsoft Wi-Fi Direct Virtual Adapter" in x.nice_name
    and not "Bluetooth Device" in x.nice_name]

return list(set(addr.ip for iface in adapters for addr in iface.ips if addr.is_IPv4))

请将“Microsoft Wi-Fi Direct Virtual Adapter”和“Bluetooth Device”替换为适当的名称。

这不是一个整洁的方法,所以我愿意接受更好的答案。


推荐阅读