我想使用 python 读取 can-bus,然后通过 python 在总线上发送消息(我是一个完全的 python 新手,但有 C 和 C++ 知识)。所以我开始通过 pip 安装 python-can 模块。我想尝试的第一件事是仅使用 python-can-viewer 从总线读取消息。我从峰值检查了与固件的连接,一切正常,我可以从我的 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的basi API驱动程序并在system32文件夹中获取PCANbasic.DLL(需要管理员权限)
关于python - 无法让 python-can-viewer 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60090919/