如何从多个网址导入python文件

时间:2018-12-22 10:30:31

标签: python url import

我正在尝试从URL导入python文件。但是我唯一的问题是,如果网络中断,我的应用程序将会崩溃。如果一个网址掉了,我可以切换到新的网址吗?

我的代码:

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失败

2 个答案:

答案 0 :(得分:2)

也许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")

答案 1 :(得分:1)

对于多个网址,这是一个简单的解决方案:

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"])