无法让 python-can-viewer 到 运行

Can't get python-can-viewer to run

我想使用 python 读取 can-bus,然后通过 python 在总线上发送消息(我是一个 python 新手,但是具有 C 和 C++ 知识)。所以我开始通过 pip 安装 python-can 模块。我想尝试的第一件事是仅使用 python-can-viewer 从总线读取消息。我从 peak 检查了与固件的连接,一切正常,我可以从我的 can 设备上看到心跳。但是 can-viewer 模块不会启动。

抱歉,错误消息是德语的,意思是:

[WinError 126] The specified module could not be found

我也试过使用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

我发现了问题,我没有在 windows/system32 文件夹中安装正确的 dll,我从 https://www.peak-system.com/Downloads.76.0.html?&L=1

下载了正确的 PCAN API 基本驱动程序软件

对于有同样问题的人,下载 Windows 的基础 API 驱动程序并在 system32 文件夹中获取 PCANbasic.DLL(您需要管理员权限)