[阅读: 398] 2006-08-08 11:32:19
作用:把脚本放在http可以访问到的地方,程序可以在本地调用脚本的对象
from ihooks import ModuleImporter, ModuleLoader, PY_SOURCE
from urllib2 import urlopen, HTTPError
from urlparse import urljoin
import re, tempfile, shutil, os
pattern = re.compile(r"^(https?://[^ ]+)")
url_path = ["http://eikeon.com/2002/06/16/", "http://eikeon.com/2002/06/15/", 'http://www.gridok.com/']
class HTTPModuleLoader(ModuleLoader):
def find_module(self, name, path = None):
stuff = ModuleLoader.find_module(self, name, path)
if stuff:
return stuff
if path:
return
if self.verbose: print "looking for: ", name, path
for base in url_path:
url = urljoin(base, name + ".py")
try:
file = urlopen(url)
name = tempfile.mktemp()
stream = open(name, 'wb')
stream.write(file.read())
stream.close
file = open(name, 'r')
return file, url, ('.py', 'r', 1)
except HTTPError, he:
print "Did not find: ", url
print he
return None
class HTTPModuleImporter(ModuleImporter):
def __init__(self):
hooks, verbose = (None, 1)
loader = HTTPModuleLoader(hooks, verbose)
ModuleImporter.__init__(self, loader, verbose)
HTTPModuleImporter().install()
#以上代码参考:http://www.koders.com/python/fid385DFC52BED3B940DA5E
#以下代码仅供测试用
import logger
log = logger.initlog()
log.info("hello from http")