如何方便地给Python环境注册新类库

文章参考:Elias的个人主页

原始说明参见 Using .pth files for Python development 

有时候我们正在修改或调试的程序会是一个库,为修改方便,我们可能不大希望把它放到 site-packages 下面,而是更愿意把它保留在原始的工程目录中,以方便 IDE 和版本控制工具进行管理。那么怎么能让 Python 运行环境找到这个库呢?

原理上, Python 运行环境查找库文件时本质是对 sys.path 列表的遍历,如果我们想给运行环境注册新的类库进来,

  • 要么得用代码给 sys.path 列表增加新路径;
  • 要么得调整 PYTHONPATH 环境变量;
  • 要么就得把库文件复制到已经在 sys.path 设置中的路径中去(比如 site-packages 目录);

这些方法都不够方便。最简单的办法是用 .pth 文件来实现。Python 在遍历已知的库文件目录过程中,如果见到一个 .pth 文件,就会将文件中所记录的路径加入到 sys.path 设置中,于是 .pth 文件说指明的库也就可以被 Python 运行环境找到了。

比如我们在Fedora-Server 21 中,在 /usr/lib64/python2.7/site-packages目录下放一个 xcb.pth文件,文件的内容写:

/usr/local/lib64/python2.7/site-packages/xcb

,则 xcb 这个目录中的 Python 文件就可以被运行环境找到了,这比调整环境变量或者把库文件本身挪来挪去方便多了。

其实,easy_install 所依赖的 egg 包安装就是靠 site-packages 目录下的 .pth 文件添加对 egg 包的引用实现的。所以修改对应的 .pth 文件内容,就可以实现对 egg 包的卸载。

posted @ 2015-03-23 20:53  学海无涯1999  阅读(188)  评论(0)    收藏  举报