在python中使用第三方模块的教程

在python中,安装第三方模块,是通过setuptools这个工具完成的。python有两个封装了setuptools的包管理工具:easy_install和pip。目前官方推荐使用pip。

如果你正在使用mac或linux,安装pip本身这个步骤就可以跳过了。

如果你正在使用windows,请参考安装python一节的内容,确保安装时勾选了pip和add python.exe to path。

在命令提示符窗口下尝试运行pip,如果windows提示未找到命令,可以重新运行安装程序添加pip。

现在,让我们来安装一个第三方库——python imaging library,这是python下非常强大的处理图像的工具库。一般来说,第三方库都会在python官方的pypi.python.org网站注册,要安装一个第三方库,必须先知道该库的名称,可以在官网或者pypi上搜索,比如python imaging library的名称叫pil,因此,安装python imaging library的命令就是:

pip install pil

耐心等待下载并安装后,就可以使用pil了。

有了pil,处理图片易如反掌。随便找个图片生成缩略图:

>>> import image
>>> im = image.open(‘test.png’)
>>> print im.format, im.size, im.mode
png (400, 300) rgb
>>> im.thumbnail((200, 100))
>>> im.save(‘thumb.jpg’, ‘jpeg’)

其他常用的第三方库还有mysql的驱动:mysql-python,用于科学计算的numpy库:numpy,用于生成文本的模板工具jinja2,等等。
模块搜索路径

当我们试图加载一个模块时,python会在指定的路径下搜索对应的.py文件,如果找不到,就会报错:

>>> import mymodule
traceback (most recent call last):
file “”, line 1, in
importerror: no module named mymodule

默认情况下,python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中:

>>> import sys
>>> sys.path
[”, ‘/library/python/2.7/site-packages/pycrypto-2.6.1-py2.7-macosx-10.9-intel.egg’, ‘/library/python/2.7/site-packages/pil-1.1.7-py2.7-macosx-10.9-intel.egg’, …]

如果我们要添加自己的搜索目录,有两种方法:

一是直接修改sys.path,添加要搜索的目录:

>>> import sys
>>> sys.path.append(‘/users/michael/my_py_scripts’)

这种方法是在运行时修改,运行结束后失效。

第二种方法是设置环境变量pythonpath,该环境变量的内容会被自动添加到模块搜索路径中。设置方式与设置path环境变量类似。注意只需要添加你自己的搜索路径,python自己本身的搜索路径不受影响。