I think you would have to create a separate beackground Thread in Python which would repeatedly call the function
recvFromArduino(): that is in my
Python demo. I have used that arrangement myself.
Another thought ...
You can easily organize a Python program the same way as the Arduino setup() and loop() system.
In the Arduino serialEvent() is exactly the same as having this code as the last thing in loop()
if (Serial.available() > 0) {
mySerialFunction();
}
...R