中国开发网: 论坛: 程序员情感CBD: 贴子 372187
leejd
值得骄傲的事情,保存一下
作用:把脚本放在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")

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录