pth文件是什么?

简单来说就是一个表示Python的模块搜索路径(module search path)的文本文件,
这个文件的每一行都表示一个路径,例如我的atrino.pth文件:

D:\Dropbox\Python\tools\pelican\Unidecode-0.04.12
D:\Dropbox\Python\tools\pelican\feedgenerator-1.5
D:\Dropbox\Python\tools\sphinx\Docutils\tools\docutils-0.10
D:\Dropbox\Python\tools\Jinja2\jinja2-master
D:\Dropbox\Python\tools\pelican\blinker-1.2
D:\Dropbox\Python\tools\pelican\six-1.2.0
D:\Dropbox\Python\tools\pelican\pelican-master

需要把pth文件放到哪里?

不同的OS下,pth文件的位置也不一样,可以通过以下代码找到pth的位置:

import site;site.getsitepackages()

运行一下,Windows下会类似这样:

>>> import site; site.getsitepackages()
['C:\\Python27', 'C:\\Python27\\lib\\site-packages']

OS X Mountain Lion下会是这样:

>>> import site;site.getsitepackages()
['/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python', '/Library/Python/2.7/site-packages']

输出的两个路径中,选择其中一个就可以了,一般在Windows下可以选择第一个,即把atrino.pth放到C:\Python27下。
OS X下可以选择第二个,即把atrino.pth放到/Library/Python/2.7/site-packages下。

pth文件的妙用:实现Module的绿色安装

例如要安装web.py,把webpy-webpy-0.37.zip解压缩到当前目录下:

D:\DROPBOX\PYTHON\WEB.PY\TOOLS\WEBPY-WEBPY-0.37
├─experimental
├─test
├─tools
└─web
    ├─contrib
    └─wsgiserver

然后直接把D:\DROPBOX\PYTHON\WEB.PY\TOOLS\WEBPY-WEBPY-0.37
加到atrino.pth中就可以import web了。

这样做的一个好处就是升级非常方便,
直接下载新版本或者通过git pull更新到最新的版本就可以了。

与setup.py install或者pip install –upgrade等相比,这个简直太人性化了!