Устройство и сервер в одной сети находятся? Если нет, есть ли между ними маршрутизация? Если да, не закрыт ли порт брандмауэром самого сервера или одного из промежуточных хопов?
В приведённом примере кода нет циклов. if-else - это условное выражение. Блоки try-except одинаково используются и в блоках условных выражений, и в телах циклов, и в любом другом месте.
url работает в 2.1 потому, что 2.1 обратно совместим с предыдущими версиями, path - это не замена, а ещё один способ. А чтобы понять почему не работает path, надо задать вопрос нормально и добавить в него ошибку.
Николай Конюхов, да-да, и ещё много чего, что не нужно на тормозном и не имеющем никаких плюсов, как утверждает автор ответа, Python'е. Взять любой нагруженный проект на PHP и обнаружишь, что в нём используются трансляторы с PHP на С++, типа kPHP и HPHPc. В то время как Instagram например использует обычный CPython (даже не PyPy) и обычный Django.