微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Coral 开发板 Windows 10 设置

如何解决Coral 开发板 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

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

解决方法

同样的事情发生在我身上。跳过一些 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:Add XXX.XXX.XX.XX 到多播组时地址不可用,预计在某些系统上会发生

与 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”替换为适当的名称。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。