A police source said the man was an Afghan asylum-seeker.

A 19-year-old man was killed and another eight people were wounded, three seriously, in a knife attack Saturday in the French city of Lyon, a regional official and emergency services said.

A man armed with a knife and a skewer carried out the attack in Villeurbanne, a suburb of Lyon, in southeastern France.

Police have arrested the suspected attacker and placed him in custody for murder and attempted murder, the Lyon prosecutor's office told AFP. A police source said the man was an Afghan asylum-seeker.

While initial reports from local officials suggested police were looking for a second man, a police source and the prosecutor's office subsequently said the suspect acted alone.

The reasons for the attack were still not clear. The national anti-terrorism prosecutor's office has been informed but has not taken charge of the case at this stage.

An AFP journalist at the scene witnessed a body being taken away in an ambulance and traces of blood on the ground.

The attack happened at around 4:30 pm (1430 GMT) at a bus stop near the local station.

"There was a man at the 57 (bus stop) who started striking out with a knife in all directions," a witness told AFP, a young girl whose top was stained with blood.

"He managed to hit, to open the belly of one person," she said.

"He stabbed a guy in the head, he cut the ear of a lady and the lady was dying at the bus stop and no one came to help," she added, sobbing.

She eventually managed to get the woman on a bus, which closed its doors and drove away from the scene.

"There was blood everywhere," the woman added.

Of the eight people wounded in the attack, three were in a critical condition, said the prosecutor's office. Paramedics treated another 20 people at the scene for shock.

The mayor of Lyon Gerard Collomb, a former interior minister, visited the site of the attack but in comments to journalists would not be drawn on what had provoked it.

Last May, a parcel bomb in front of a baker's shop in central Lyon slightly injured 14 people.

The perpetrator, a young radicalised Algerian, who was arrested three days later, pledged allegiance to the Islamic State group, according to his confession.

Lyon, France's third city, had until then remained untouched by the wave of jihadist attacks that have killed 251 people in France since 2015.