原始说明参见 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 运行环境找到了。

比如我们在 Mac OSX 10.5 中,在 /Library/Python/2.5/site-packages/ 目录下放一个 something.pth 文件,文件的内容写:

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

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

GlossyBlue theme adapted by David Gilbert
Powered by PmWiki