What you’re referring to are different implementations of Python interpreters. There’s still basically one Python language. So, for example Python 2.7 should be the same across all these implementations.
That being said, there’s a pretty good reason for each of them.
CPython is the most standard and popular implementation. The interpreter is written in C.
Need raw speed? Pypy is 70x faster. It’s implemented in a restricted subset of Python called RPython, and has a JIT (Just-In-Time) compiler that speeds up your Python code immensely. It also supports “C Foreign Function Interface” (CFFI) which makes it faster and easier to use C code, as compared with CPython’s PyObject stuff.
Need to use the JVM? Use Jython. You can use the Java libraries your team built, and gain the development speed and readability of Python.
Looking for something that can be translated into C code? (Which you can later use to hand-optimize or whatever?) Cython. This fine gentleman used it to crunch massive amounts of data, instead of using a whole cluster of servers:
And then there’s Dropbox’s version, Pyston, which well…is dead…so you can ignore it. RIP.