使用Python在嵌入式Linux上使用套接字,绑定行为不当

2024-09-30 22:17:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用运行在嵌入式linux上的python3.4与CAN驱动程序接口。 理论上,python3.3中有一个很好的socketcan库 但进口可能会失败。在

在根部@unit-901-100-sn003:~/弗朗西斯#Python3 Python 3.4.3(默认值,2015年10月14日,21:23:51) 导入can ImportError:没有名为“can”的模块

回到基础。事实上,在有人指出之前我正在研究这个 #!/usr/bin/envPython3

import socket;

can_device = "can0";

sock_instance = socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW);
can_index = socket.if_nametoindex(can_device);
addr = (socket.AF_CAN, can_index); 
sock_instance.bind(addr);

在根部@unit-901-100-sn003:~/弗朗西斯/袜子.py 回溯(最近一次呼叫): 文件”/袜子.py“,第10行,英寸 袜子_实例.bind(can设备,can索引); TypeError:函数只接受1个参数(给定2个)

此程序如上所述失败。 我显然是在传递一个单参数元组,还是我没用?在

如果我只是创建了一个简单的套接字

^{pr2}$

它的执行使bind可以重新注册元组。在


Tags: instancepyindexrawbinddeviceunitsocket
1条回答
网友
1楼 · 发布于 2024-09-30 22:17:09

python can库实际上有一个调用socketcan的ctypes和{a2}python实现。在

绑定是这样的:

channel = "can0"
sock = socket.socket(socket.PF_CAN, socket.SOCK_RAW, socket.CAN_RAW)
sock.bind((channel,))

相关问题 更多 >