Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Why is the same code not running now?

Aberta
#1,862 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
25/100
Tipo de issue
Bug
Clareza
Precisa de esclarecimento
Status de atividade
Estagnada
Stack de tecnologia
python
Domínio
embedded-iot

Direção de pesquisa

Comece reproduzindo o script fornecido com o hardware Canable indicado, a interface slcan, o sistema operacional, a versão do Python e a versão do python-can. Inspecione os pontos de entrada can.interface.Bus e AsyncBufferedReader e colete o traceback ou os logs ausentes. O trabalho estará concluído quando uma causa reproduzível for identificada com um relatório acionável, ou quando for documentado que o problema é ambiental e não um bug do python-can.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug
Describe the bug

I used to be able to successfully obtain data using the following code, but now the data cannot be displayed
The hardware I am using is Canable.

Additional context

OS and version:Windows10/Ubuntu 24.04
Python version:Python3.10/Python3.12
python-can version:4.2.0/4.4.2
python-can interface/s (if applicable):slcan

Traceback and logs

The environment that was once able to run successfully:

cantools==39.3.0
mqtt==0.0.1
paho-mqtt==1.6.1
pyserial==3.5
python-can==4.2.0

this is my code example,It was once able to run successfully.

# This is a sample Python script.
import asyncio
import time
from typing import List

import can
from can.notifier import MessageRecipient
# import cantools
import serial.tools.list_ports

# import paho.mqtt.client as mqtt
# import json

# client = mqtt.Client()
# db = cantools.database.load_file('.\wuling.dbc')


def on_connect(client, userdata, flags, rc):
    print(f"Connected with result code {rc}")


async def main() -> None:
    port = None
    ports_list = list(serial.tools.list_ports.comports())
    if len(ports_list) <= 0:
        print("无串口设备,即将退出...")
        time.sleep(2)
        exit(0)
    else:
        print("可用的串口设备如下:")
        for comport in ports_list:
            print(comport.name + ",描述:" + str(comport.description) + ",设备ID:" + str(comport.vid) + ":" + str(
                comport.pid))

        for comport in ports_list:
            if comport.pid == 4478 and comport.vid == 5840:
                print("选择第一个CAN设备:" + comport.name + " " + str(comport.description))
                port = comport
                break

    if port is None:
        print("未发现CAN设备,即将退出...")
        time.sleep(2)
        exit(0)

    # client.on_connect = on_connect
    # client.username_pw_set(username="user", password="user")
    # client.connect("127.0.0.1", 1883, 60)
    """The main function that runs in the loop."""

    with can.interface.Bus(bustype='slcan', channel=str(port.name), bitrate=500000, ) as bus:
        reader = can.AsyncBufferedReader()
        listeners: List[MessageRecipient] = [
            reader,
        ]
        loop = asyncio.get_running_loop()
        notifier = can.Notifier(bus, listeners, loop=loop)
        while True:
            msg = await reader.get_message()
            try:
                print(msg)
            except Exception as ex:
                print(ex)
                pass
            pass


if __name__ == "__main__":
    asyncio.run(main())

Linguagem predominante
Python
Estrelas
1.6k
Forks
697
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de hardbyte/python-can

Todas as issues de hardbyte/python-can

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.