我想使用 python 来读取 can-bus,然后再通过 python 在总线上发送消息(我是一个完全的 python 新手,但有 C 和 C++ 知识)。所以我开始通过 pip 安装 python-can 模块。我想尝试的第一件事是只使用python-can-viewer从总线读取消息。我从峰值检查了与固件的连接,一切正常我可以看到我的罐头设备的心跳。但是 can-viewer 模块不会启动。
抱歉,错误按摩是德语的,它的意思是:
[WinError 126] 找不到指定的模块
我还尝试使用 python-can 中的一个简单示例
import can
can.rc['interface'] = 'pcan'
can.rc['channel'] = 'PCAN_USBBUS1'
can.rc['bitrate'] = 500000
def send_one():
with can.interface.Bus() as bus:
bus = can.interface.Bus()
msg = can.Message(
arbitration_id=0xC0FFEE, data=[0, 25, 0, 1, 3, 1, 4, 1], is_extended_id=True
)
try:
bus.send(msg)
print("Message sent on {bus.channel_info}")
except can.CanError:
print("Message NOT send")
if __name__ == "__main__":
send_one()
我从https://python-can.readthedocs.io/en/master/得到了这个例子
我也遇到同样的错误,我还发现 winerror 126 可能与缺少 ddls 或库有关,所以我从 microsoft 安装了 x64 vc_redist,但它没有帮助https://support.microsoft.com/en-us/help/2977003 /the-latest-supported-visual-c-downloads
编辑:忘了提到这个网站https://python-can.readthedocs.io/en/3.3.2/installation.html