I don\'t really get the concept of \"bytecode interpreter\" in the context of CPython. Can someone shed some light over the whole picture?
Does it mean that CPython
First: The fact that CPython is a bytecode interpreter should not matter to you as a user of python. Go ahead and write code, and don't worry about how it's turned into action.
So, to answer your question and satisfy your curiosity, here is what happens: CPython reads python source code, and compiles it into python byte code, which is stored in the .pyc file. It then executes that code using a bytecode interpreter. This design separates the parsing of python from the execution, allowing both parts of the interpreter to be simpler.
Jython is only the front half -- it reads Python source, and outputs Java bytecodes, which are then interpreted by the JVM. It's the same architecture as CPython, with two noteworthy differences: One: the java bytecode is standardized and documented, while the CPython bytecode is considered internal to python, and can change at any time. Two: the JVM is a whole lot more complicated than the CPython interpreter. The JVM has one of the most advanced JIT engines in the world, while the CPython interpreter is pretty simple.