Four people were killed and at least two wounded when a gunman opened fire at a high school and a second location in the Canadian province of Saskatchewan, officials said.

A male suspect was in custody but officials have not yet given a motivation for Friday’s shooting in La Loche, an aboriginal community 600km north of the city of Saskatoon.

Initial reports said five people were killed.

Royal Canadian Mounted Police Chief Supt. Maureen Levy said authorities had seized the suspect's gun.

"There is four individuals deceased as a result of this tragedy and there are other injuries and they're being treated by health care professionals at this time," she told reporters.

"I can tell you that we have one male in custody. Public safety is no longer at risk and we have secured the firearm."

Canadian Prime Minister Justin Trudeau, speaking from the annual World Economic Forum in Davos, Switzerland, said what had happened was "every parent's worst nightmare".

He added: "The community is reeling."

A student at the high school was just returning from lunch when shots were fired said his friends ran past him urging him to get out.

"'Run, bro, run!" Noel Desjarlais-Thomas, 16, recalled his friends saying to him as they fled La Loche's junior and senior high school.

"There's a shotgun! There's a shotgun! They were just yelling to me. And then I was hearing those shots, too, so of course I started running," The Associated Press news agency reported.

Mass shootings are relatively rare in Canada, which has stricter gun laws than the United States.

In the country's worst school shooting, 14 college students were killed at Montreal's Ecole Polytechnique in 1989. A shooting in 1992 at Concordia University in Montreal killed four.

Among Canada's provinces, Saskatchewan had the highest rate of police-reported family violence in 2014, double the national rate of 243 incidents per 100,000 people, according to a Statistics Canada report on Thursday.