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


Posted in Python onApril 27, 2015

在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 "<stdin>", line 1, in <module>
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自己本身的搜索路径不受影响。

Python 相关文章推荐
python操作sqlite的CRUD实例分析
May 08 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
Python安装使用命令行交互模块pexpect的基础教程
May 12 Python
Python实现代码统计工具(终极篇)
Jul 04 Python
django中使用事务及接入支付宝支付功能
Sep 15 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
Mar 10 Python
解决flask接口返回的内容中文乱码的问题
Apr 03 Python
Django使用rest_framework写出API
May 21 Python
深入了解Python装饰器的高级用法
Aug 13 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
Nov 10 Python
详解Python生成器和基于生成器的协程
Jun 03 Python
在Python中使用模块的教程
Apr 27 #Python
详细介绍Python中的偏函数
Apr 27 #Python
举例讲解Python中装饰器的用法
Apr 27 #Python
Python中的匿名函数使用简介
Apr 27 #Python
Python中用函数作为返回值和实现闭包的教程
Apr 27 #Python
Python中利用sorted()函数排序的简单教程
Apr 27 #Python
Python中的filter()函数的用法
Apr 27 #Python
You might like
php截取字符串并保留完整xml标签的函数代码
2013/02/06 PHP
解析yii数据库的增删查改
2013/06/20 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
php实现通过cookie换肤的方法
2015/07/13 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
2011/11/30 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
2013/04/08 Javascript
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
babel基本使用详解
2017/02/17 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
Nodejs之http的表单提交
2017/07/07 NodeJs
深入理解Vue router的部分高级用法
2018/08/15 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
python使用KNN算法识别手写数字
2019/04/25 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
python实现猜数游戏
2020/03/27 Python
联想新西兰官方网站:Lenovo New Zealand
2018/10/30 全球购物
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
高三毕业典礼演讲稿
2014/05/13 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
学生个人总结范文
2015/02/15 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
python 常用的异步框架汇总整理
2021/06/18 Python