Despite having a built-in threading module, Python cannot do real multi-threading because of its infamous Global Interpreter Lock (GIL) mechanism.
Long story short, the GIL maintains a lock on the Python interpreter such that only one thread can use the interpreter at a time.