Tre elever og en rektor er såret af skud på et gymnasium i Grasse i det sydlige Frankrig.
Mindst fire andre kom til skade under panikscener i forlængelse af skyderiet.
- Det var en vanvittig handling af en ung mand, som var ustabil og glad for våben, siger undervisningsminister Najat Vallaud-Belkacem foran gymnasiet ifølge det franske nyhedsbureau AFP.
Hun roser rektoren for hans heroiske forsøg på at beskytte eleverne.
Embedsmænd i kommunen siger, at det ikke er et terrorangreb.
En 17-årig, der er elev på gymnasiet Alexis de Tocqueville, er anholdt. Han var bevæbnet med en riffel, to håndvåben og to granater, oplyser en politikilde ifølge nyhedsbureauet Reuters.
- Personen ser ikke ud til at være kendt af politiet i forvejen, siger kilden.
Den 17-årige mistænkte havde delt billeder og videoer af amerikanske skoleskyderier på sociale medier - blandt andet massakren på Columbine High School i 1999.
Gymnasiets rektor og tre elever behandles for deres skudsår, fortæller hospitalsdirektør Frederic Limouzy til AFP.
Umiddelbart efter skyderiet udsendte de lokale myndigheder på Twitter en advarsel til borgerne i Grasse om at holde sig inden døre. Samtidig blev der over telefonen udsendt varsler om et muligt terrorangreb.
Christian Estrosi, som er formand for det lokale regionsråd, siger til AFP, at eleven, der skød, måske led af "psykiske problemer".
Grasse ligger tæt ved Middelhavet nordvest for Cannes.
Frankrig er fortsat i undtagelsestilstand efter flere store angreb i landet. Det blodigste stod støtter af Islamisk Stat bag 13. november 2015 i Paris, da 130 mennesker blev dræbt i flere samtidige angreb med skud og bomber.
Paris blev også rystet af et voldsomt angreb 7. januar 2015. To franske brødre med algeriske rødder åbnede ild og dræbte flere end ti på det satiriske magasin Charlie Hebdo.
Den skærpede sikkerhed i landet er foreløbigt forlænget til 15. juli 2017.
Den medfører, at soldater er udstationeret ved offentlige bygninger i de franske byer - blandt andet ved museer og andre større turistattraktioner.
/ritzau/