District officials said charges were pending against the student, KHOU-TV, Houston, reported.
Josh Rubin, a senior at Seven Lakes High School in Katy, described the suspect, who wasn't identified, as "kinda a pyrotechnic."
"He like[d] to make things with fire and all that," Rubin said. "He is honestly a nice person if you just talk to him but he would be a person I would expect would do something like this."
Katy Independent School District officials said the high school was evacuated about 10:15 a.m. after police learned of a threat on campus and the weapon was located about 45 minutes later, the TV station said. The students were sent home at 1:30 p.m.
"They backed us up to the football fields and the rumors started to go around and that is when they told us," junior Mark Clemens said.
"I think that it is pretty real. I don't think they would go through all this if it was just a prank," Beau O'Hara, another junior, said.
District officials said there were actually two evacuations; the first was a regularly scheduled fire drill, followed by one called because of the security threat.
District officials, who initially said an explosive device had been found, described a zip gun as any device altered to propel an object designed to cause harm. The weapons are often made with a pipe and can fire nails, the TV station said.