A 16-year-old student armed with several weapons has opened fire at a high school in the southern French town of Grasse.
At least two pupils were among the wounded, officials said, and the principal was also shot while attempting to intervene at the Alexis de Tocqueville high school.
The principal was reportedly hit in the shoulder, and one of the students in the stomach.
Their injuries are not described as life-threatening.
Local prosecutor Fabienne Atzori said there were 10 victims in all, with three suffering from "emotional shock".
She said some students did not discover shrapnel in their bodies until they got home.
Police have arrested a suspect who was carrying a rifle, several pistols and a small grenade - and officials believe he had watched American-style mass shooting videos prior to the attack.
He was named by the interior ministry spokesman as Killian Barbey, whose Facebook page reportedly says he is 16.
Regarding why it had happened, Ms Atzori said: "The motivation of the student appears linked to bad relations with other students in this high school in which it appears he had some difficulty integrating."
Visiting the school, education minister Najat Vallaud-Belkacem said it was "the crazy act of a fragile young man fascinated by firearms... We just missed the worst".
There did not appear to be any other suspects, a national police official said.
Fabienne Atzori said the suspect had gone in and out of a classroom, "not finding the person or people he was searching for".
Students who witnessed the shooting said they took cover under the tables after hearing a bang.
One told France Inter radio: "I went to close the windows and saw a guy who looked at me in the eyes. He seemed to be a student and not very big. He shot in the air and ran away."
The government sent a nationwide terrorist attack warning to smartphones after the shooting, and police urged local residents to stay indoors.
A shopkeeper opposite the school told Franceinfo he heard "several shots" and three schoolgirls had taken refuge inside his store.
Other schools across the town were put on lockdown, according to local officials.
France remains in a state of emergency following deadly attacks in Paris and Nice over the past two years.
The shooting comes less than six weeks ahead of a two-round presidential election.