如何在Python中导入库函数&IMPORT CAN"

2022-05-28 00:00:00 python importerror installation

问题描述

我正在使用Ubuntu。我想要向总线发送垃圾邮件,并使用Wireshark查看数据包。我试图运行如下所示的Python代码,但它抛出了以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'can'

我的代码:

import time, can
bustype = 'socketcan'
channel = 'vcan0'
def producer(id):
    # :param id: Spam the bus with messages including the data id.
    bus = can.interface.Bus(channel=channel, bustype=bustype)
    for i in range(10):
        msg = can.Message(arbitration_id=0xc0ffee, data=[id, i, 0, 1, 3, 1, 4, 1], extended_id=False)
        bus.send(msg)
    # Issue #3: Need to keep running to ensure the writing threads stay alive. 
    time.sleep(1)
producer(10)

解决方案

Ubuntu18.04及更高版本

在Ubuntu 18.04及更高版本中,默认的Ubuntu存储库提供了python-can和python3-can。打开终端并输入:

sudo apt update  
sudo apt install python3-can # for Python 3.x  

sudo apt update  
sudo apt install python python-can # for Python 2.x 

若要安装Canard(用于与控制器区域网络(CAN)交互的库),您必须使用pip。

python3 -m pip install --user CANard # for Python 3.x

python -m pip install --user CANard # for Python 2.x

相关文章