如何定制Python模块的查找和物理实现

一般来说,Python从文件系统上的.py或者相应的字节码文件.pyc或.pyo获得一 个python module对象。有时候会需要定制这个过程,比方说,嵌入Python作为 应用容器的时候,希望有一种特别的应用打包格式,类似jar或者war,或者处 于某些原因,需要改变Python Module的物理存储,比如,处于查找性能上的考 虑,如果python module能从一个key-value数据库得到就好了,或者处于商务 上的原因,如果能对源代码(或者pyc,而pyc很容易被反编译到py)进行加密 处理就更好了。

3.2 如何定制Python Module的查找

http://www.python.org/dev/peps/pep-0302/

参考上面的链接。要点在于可以用一个实现了Import Protocol的class去 hook模块加载的过程,这个hook要被安装到sys.pathhooks.

这是一个从网络上(github)import模块的例子:

https://github.com/mitsuhiko/badideas/blob/master/githubimporter.py

Author: MaTao <qingant@gmail.com>

Date: 2012-03-20 Tue

HTML generated by org-mode 6.33x in emacs 23

 

posted on 2012-09-02 04:27 qingant 阅读(1797) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


导航

<2012年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

统计

常用链接

留言簿(3)

随笔档案

相册

最新随笔

搜索

最新随笔

最新评论

阅读排行榜

评论排行榜