如何在Python中导入库函数“ import can”

时间:2019-02-11 09:52:02

标签: python installation importerror

我正在使用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)

3 个答案:

答案 0 :(得分:1)

每当您在Python中获得no module named '<module_name>' error时,这意味着python找不到模块。可能是因为缺少模块。

您可以使用pip安装python模块。 如果您没有pip工具,则可以使用sudo apt install python-pip在基于Debian的操作系统上进行安装。

在您的情况下,您需要python-can模块,该模块可以通过使用

进行安装

pip install python-can

答案 1 :(得分:1)

Ubuntu 18.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。

pip3 install CANard # for Python 3.x

pip install CANard # for Python 2.x

答案 2 :(得分:0)

您需要install external third-party package python-can 您可以使用pip进行操作。请按照提供的链接中的说明进行操作