有时候我们正在修改或调试的程序会是一个库,为修改方便,我们可能不大希望把它放到 site-packages 下面,而是更愿意把它保留在原始的工程目录中,以方便 IDE 和版本控制工具进行管理。那么怎么能让 Python 运行环境找到这个库呢?
原理上, Python 运行环境查找库文件时本质是对 sys.path 列表的遍历,如果我们想给运行环境注册新的类库进来,
- 要么得用代码给 sys.path 列表增加新路径;
- 要么得调整 PYTHONPATH 环境变量;
- 要么就得把库文件复制到已经在 sys.path 设置中的路径中去(比如 site-packages 目录);
这些方法都不够方便。最简单的办法是用 .pth 文件来实现。Python 在遍历已知的库文件目录过程中,如果见到一个 .pth 文件,就会将文件中所记录的路径加入到 sys.path 设置中,于是 .pth 文件说指明的库也就可以被 Python 运行环境找到了。
比如我们在 Mac OSX 10.5 中,在 /Library/Python/2.5/site-packages/ 目录下放一个something.pth 文件,文件的内容写:
/Volumes
/Data
/Elias
/WorkNow
/SomeModule
其实,easy_install 所依赖的 egg 包安装就是靠 site-packages 目录下的 .pth 文件添加对 egg 包的引用实现的。所以修改对应的 .pth 文件内容,就可以实现对 egg 包的卸载。