It seems rare to read of a Python \"virtual machine\" while in Java \"virtual machine\" is used all the time.
Both interpret byte codes; why call one a virtual machi
First of all you should understand that programming or computer science in general is not mathematics and we don't have rigorous definitions for most of the terms we use often.
now to your question :
what is an Interpreter (in computer science)
It translates source code by smallest executable unit and then executes that unit.
what is a virtual machine
in case of JVM the virtual machine is a software which contains an Interpreter, class loaders, garbage collector, thread scheduler , JIT compiler and many other things.
as you can see interpreter is a part or JVM and whole JVM can not be called an interpreter because it contains many other components.
why use word "Interpreter" when talking about python
with java the compilation part is explicit. python on the other hand is not explicit as java about its compilation and interpretation process, from end user's perspective interpretation is the only mechanism used to execute python programs