Я пытаюсь импортировать файл Python с URL-адреса. Но единственная проблема, которая у меня есть, заключается в том, что если сеть не работает, мое приложение выйдет из строя. Возможно ли, что если один URL-адрес не работает, я могу переключиться на новый URL-адрес?
Мой код:
def import_py_from_url(self, URL):
import urllib
exec urllib.urlopen(URL).read() in globals()
self.import_py_from_url("http://exemple.com/python.py")
Я получаю ошибку:
LoginWindow .__ LoadScript.BindObject -: [Errno ошибка сокета] [Errno 11001] getaddrinfo не удалось






Может быть, могут помочь заявления try: и except:. Что-то вроде этого
def import_py_from_url(self, URL): # Maybe also add an `URL2` for the alternative
import urllib
try:
exec urllib.urlopen(URL).read() in globals()
except:
# <<< add code for your alternative url >>>
self.import_py_from_url("http://exemple.com/python.py")
На self.import_py_from_url вы можете добавить второй URL напрямую. Это даст вам:
def import_py_from_url(self, URL, URL2):
import urllib
try:
exec urllib.urlopen(URL).read() in globals()
except:
exec urllib.urlopen(URL2).read() in globals()
self.import_py_from_url("http://exemple.com/python.py", "http://example-location2.com/python.py")
Для нескольких URL-адресов вот простое решение:
def import_py_from_urls(self, URLS):
import urllib
for url in URLS:
try:
exec urllib.urlopen(url).read() in globals()
break
except Exception as e:
# logger a warning message
continue
else:
# all url failed.
self.import_py_from_urls(["http://exemple.com/python.py", "http://another.com/python.py"])