Why does pystan require gcc?

Is it actually compiling code? If so, why are compiled files not installed with the package instead?

Or does pystan use some gcc functionality other than actual compiling?

The Stan-language model is compiled into an application using gcc, i.e. users cannot precompile it since it’s what they are actually writing to use the software.

It’s the same (as far as I understand) as what CmdStan is doing, except PyStan just does all of it under the hood of a Python shell/script so you don’t have to deal with it and make ir user friendly.