查看原文
其他

如何安装 Python 的第三方模块

2016-04-16 Crossin Crossin的编程教室

正所谓“人生苦短,我用 Python”。Python 的一大优势就是有丰富且易用的第三方模块,省去了大量重复造轮子的时间,节约了众多开发者的生命。对于已经熟悉 Python 开发的人来说,安装第三方模块是家常便饭的事情。但如果是刚入门的新手,很可能会被折腾一番。所以我来简单地科普一下,如何安装 Python 的第三方模块。

(本文基于 Python 2.7 版本)


安装通常有两种方式:通过包管理器、直接下载源码安装


1. 包管理器


很多系统和语言都提供了包管理器。你可以把“包管理器”想象成一个类似应用商店的工具。Python 的包管理器里就是各种第三方模块。有了它,不用998,也不用98,只需要一条命令,就可以自动帮你下载并安装。


Python 常用的包管理器是 pipeasy_install。他们会从一个叫做 PyPI 的源里搜索你要的模块,找到后自动下载安装。PyPI 是 Python 官方的第三方模块仓库,供所有开发者下载或上传代码。


如果你用的是 Mac 或者 Linux,那么同 Python 一样,你的系统里应该自带了 pip。而如果你是 Windows,那么在安装 Python 的时候,勾选 pipAdd python.exe to Path,就会帮你同时安装好 pip 并设置好环境变量中的路径。如果无法使用 pip,确认 Python 安装目录下的 Scripts 子目录中有 pip,并且这个子目录的路径被加在了环境变量 Path 中。如果没有 pip,则要通过下载 setuptools 安装,或建议直接重新安装一遍 Python。


IPython 为例,通过 pip 命令进行安装,只需要在命令行输入:


pip install ipython


如果一切正常,网络不抽风,只要稍微等待,就可以看到下载进度,自动安装完就可使用。如果 Mac/Linux 下提示 Permission denied 之类的权限问题,在命令前加上 sudo。


IPython 是一个增强版的 Python shell,在命令行输入 ipython 就可以打开使用。比默认运行 python 进入的那个更好使,在里面调试代码会很方便。不过 windows 的话,还要再用 pip 装一个 pyreadline 的模块,才能使用 IPython 的 tab 键自动补全功能。(用 Windows 开发就是事多)


如果你不是很明确要下载的模块名,也可以进行搜索,比如:


pip search ipython


再来看 easy_install。安装 easy_install 的一种简单方法是去网上下载一个 ez_setup.py 的脚本文件。


http://peak.telecommunity.com/dist/ez_setup.py


下载之后运行它:


python ez_setup.py


然后 easy_install 就被安装好了。同样,需确认 Scripts 在环境变量 PATH 里。


使用方法和 pip 一样简单:


easy_install ipython


一般来说,pip 和 easy_install 就可以搞定绝大多数的模块安装了。万一不行,还可以尝试下面的另一种方式。


2. 源码安装


几乎所有第三方模块都可以在 PyPI 或 github 上找到源码,都会提供 zip、tar 等格式的压缩包。把代码压缩包下载到本地并解压,应该会看到一个 setup.py 的文件。在命令行进入其所在目录,执行:


python setup.py install


就会安装这个第三方模块。最终效果和用包管理器是一样的。


无论哪种方法,都会将第三方模块代码安装至 Python 的路径下,根据系统不同,位置有所区别,大致都是叫做 site-packagesdist-packages。所以对于一些没有其他依赖,不需要编译其他语言的纯 Python 代码包,也可以直接手动将源码复制到 site-packages 或 dist-packages 目录下。只要路径正确,就可以在你的代码里引入这些模块。


友情提醒一些坑:

  • 安装第三方模块前,请确认它所支持的版本,是不是包含你所使用的 Python 版本。有些模块对应 Python 2 和 3 需要下载不同的版本。

  • 少数复杂的包可能无法直接一条命令安装成功,特殊情况特殊对待,搜索引擎会给你指引。

  • 如果你的电脑上装有多个版本的 Python,使用 pip 很可能会造成混乱。对于这个问题,virtualenv 是一个很好的解决方案,下次会专门来讲一讲。


有一个叫做 Awesome Python 的项目,列出了各类优秀的、实用的、有意思的 Python 库,点击文章下方的“阅读原文”可查看。



Crossin的编程教室

微信ID:crossincode

论坛:http://bbs.crossincode.com

QQ群:224557627

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存