The only point of using Python threads is to wait for I/O. Which, while limiting, is a huge use case, for network servers in particular.
I imagine Python works roughly the same.
Parallelism is possible, but only for computations in native code.
FWIW Node.js is essentially the same situation.
Otherwise yes, Node or Ruby play by the same global lock rules.
Launching multiple processes without mutable shared memory is always an option.