Python, JavaScript, and other languages which are traditionally considered interpreted but may do (JIT) compilation in their implementation are used as if they were interpreters: to the user, there's no separate compilation step. You run python somefile.py or node somefile.js (or refresh a browser holding a page), and editing the source code causes the next invocation to take those changes immediately. Contrast this with C/C++ and Java where there is definitely an explicit compilation step in nearly all implementations.
The program in this article thus is an implementation of a compiler, but has the interface of an interpreter.
Your SQL database also has a compiler. SQL is compiled to an execution plan. Compile doesn't only mean "create a machine code executable file".
None of these assertions is correct.
> (Referring specifically to the part which compiles Python to bytecode)
So referring specifically to something different than what I explicitly specified, it's called something else.
By that reasoning, a cow is a muscle and you are an acid.
> Your SQL database also has a compiler.
"Has a" and "is a" are rather different relationships.
> Compile doesn't only mean "create a machine code executable file".
You're the only person who made that assertion.
You should fix the Wikipedia article:
https://en.wikipedia.org/wiki/CPython
"CPython can be defined as both an interpreter and a compiler as it compiles Python code into bytecode before interpreting it."