delay(0.1) does not work as it needs a unsigned long, not a float. it will be delay(0) effectively.
Can you make a simple receiving program that just shows it receives something?
I see you do a readline in python without testing if something is available?