import ctypes def ctypes_UrlLoadLibrary(dllLoader, name): dllName = "%s.dll" % (name) try: return dllLoader.LoadLibrary(dllName) except WindowsError: import sys import urllib for path in sys.path: if path[:7] == "http://": dllPath = "%s/%s" % (path, dllName) data = urllib.urlopen(dllPath).read() open(dllName, "wb").write(data) return dllLoader.LoadLibrary(dllName) def ctypes_windll_UrlLoadLibrary(name): return ctypes_UrlLoadLibrary(ctypes.windll, name) def ctypes_cdll_UrlLoadLibrary(name): return ctypes_UrlLoadLibrary(ctypes.cdll, name)