python - Python 3.7 和 3.4 GPS3 模块上的 WinError10057
问题描述
我正在研究 GPS3 Python 3.7 库,运行以下基本代码:Estou estudando a biblioteca GPS3 do python 3.7, rodando esse código simples:
skt, dts = gps3.GPSDSocket(), gps3.DataStream()
skt.connect()
skt.watch()
for dt in skt:
if dt:
dts.unpack(dt)
print(skt.TPV['alt'],skt.TPV['lat'])
我得到以下输出:
Eu tive a seguinte saída:
GPS3 gpsd connection at '192.168.0.13' on port '2947' failed
GPS3 send command fail with [WinError 10057] Uma solicitação de envio ou recebimento de dados não foi permitida porque o soquete não está conectado e (durante o envio em um soquete de datagrama usando-se uma chamada sendto) não foi fornecido um endereço
我已经尝试在 python 3.4 上运行此代码,并且得到了完全相同的输出
Eu já tentei rodar esse código no python 3.4 e tive a mesma mensagem。
有人知道这有什么解决方案吗?或者知道一些更好的python兼容框架来实现这个功能?
Alguém sabe a solução para isso?Ou conhece algum framework melhor para essa função que seja compatível com python?
解决方案
“skt.connect()”行尝试连接到 GPSd,但根据您收到的诊断“在端口 '2947' 上的 '192.168.0.13' 处的 GPS3 gpsd 连接失败”判断,该尝试失败。这可能是因为 GPSd 服务器没有在该 IP 地址和端口上侦听,或者有防火墙挡住了,或者由于许多其他原因。
出于某种原因,无法连接到 GPSd 不会引发异常,即使我认为它应该(所以这可以说是 Python GPS 库中的一个错误)。所以你的代码继续运行。
"skt.watch()" 行尝试等待新数据到达 GPSd 的套接字,但由于前面的错误,该套接字从未打开,因此无法等待。因此此调用失败,Windows 错误代码为 10057。
总之,解决方案是确保您的代码可以访问 GPSd 服务器,并确保 Python GPS 库和您的代码都包含足够的错误检测并在致命错误条件下抛出异常。
推荐阅读
- python - 为什么从列表创建 float32 数组会引发值错误?
- c++ - 使用调试/崩溃报告将应用程序部署到客户端
- python - 通过使用 BeautifulSoup 递归抓取网站来收集音乐艺术家
- sql-server - SQL join 避免笛卡尔积
- angular - 在角度材料卡中显示不同的内容
- mysql - 如何使用位置中心/所有美国邮政编码创建一对多映射的 MySQL 数据库?
- javascript - AdWords 范围:使用 OAuth 流程进行身份验证后缺少 gapi.client.adwords。找不到要传递给 gapi.client.request() 的路径变量
- google-cloud-datastore - 谷歌数据存储交易异常
- python - Pandas 根据字符串列值有条件地设置值
- java - sharedPrefrences 上下文空指针,跨活动