PEP 302 示例:新的导入钩子
我在哪里可以找到一个关于“新导入钩子”的示例实现,这个钩子在PEP 302中有描述?
我想以最兼容未来的方式来实现一个自定义的查找器和加载器。换句话说,这个实现应该在Python 2.x和3.x版本中都能工作。
1 个回答
3
你可以通过谷歌代码搜索找到成千上万的开源示例,下面是链接:
http://www.google.com/codesearch?hl=en&lr=&q="imp.find_module"+"imp.load_module"&sbtn=Search
补充一下:提问者澄清说他在找实现的例子,而不是使用的例子,所以更好的搜索链接是:
http://www.google.com/codesearch?hl=en&sa=N&q="path_hooks"++lang:python&ct=rr&cs_r=lang:python
有一个可读的例子(虽然不适合生产环境使用,因为reddit讨论中提到过!)是urlimport。
至于同时支持Python 2和Python 3,这听起来很有挑战性——我不知道有没有现成的导入钩子可以做到这一点。如果我是你,我会先确保完全支持Python 2.6,然后等这个功能正常工作(并且经过充分测试,使用-3
开关时没有任何警告),再用2to3
工具转换源代码,看看是否有任何问题(如果有,找出原因,修复2.6的代码,然后再试一次)。