前言
正所谓“人生苦短,我用 Python”。Python 的一大优势就是有丰富且易用的第三方模块,省去了大量重复造轮子的时间,节约了众多开发者的生命。对于已经熟悉 Python 开发的人来说,安装第三方模块是家常便饭的事情。但如果是刚入门的新手,很可能会被折腾一番。所以我来简单地科普一下,如何安装 Python 的第三方模块。
Python安装第三方模块有很多种方式,最常用的两种:通过包管理器、直接下载源码安装。
1. 包管理器
很多系统和语言都提供了包管理器。你可以把“包管理器”想象成一个类似应用商店的工具。Python 的包管理器里就是各种第三方模块。有了它,不用998,也不用98,只需要一条命令,就可以自动帮你下载并安装。
Python 常用的包管理器是 pip。他们会从一个叫做 PyPI 的源里搜索你要的模块,找到后自动下载安装。PyPI 是 Python 官方的第三方模块仓库,供所有开发者下载或上传代码。
如果你用的是 Mac 或者 Linux,那么同 Python 一样,你的系统里应该自带了 pip。而如果你是 Windows,那么在安装 Python 的时候,勾选 pip 和 Add 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
但因为pip的仓库服务器在国外,常常会因为网络连接问题而导致下载太慢或者失败。针对这种情况,一种解决方案就是“换源”,通过配置将仓库地址更换为国内的镜像网站。或者直接在命令后面加上 -i 参数指定下载源,例如:
pip install ipython -i https://mirrors.aliyun.com/pypi/simple matplotlib
这里提供几个国内源地址:
- 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple
- 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
- 阿里云 http://mirrors.aliyun.com/pypi/simple/
- 豆瓣 http://pypi.douban.com/simple/
一般来说,pip 就可以搞定绝大多数的模块安装了。万一不行,还可以尝试下面的另一种方式。
2. 源码安装
几乎所有第三方模块都可以在 PyPI 或 github 上找到源码,都会提供 zip、tar 等格式的压缩包。把代码压缩包下载到本地并解压,应该会看到一个 setup.py 的文件。在命令行进入其所在目录,执行:
python setup.py install
就会安装这个第三方模块。最终效果和用包管理器是一样的。
无论哪种方法,都会将第三方模块代码安装至 Python 的路径下,根据系统不同,位置有所区别,大致都是叫做 site-packages 或 dist-packages。所以对于一些没有其他依赖,不需要编译其他语言的纯 Python 代码包,也可以直接手动将源码复制到 site-packages 或 dist-packages 目录下。只要路径正确,就可以在你的代码里引入这些模块。
友情提醒一些坑:
- 安装第三方模块前,请确认它所支持的版本,是不是包含你所使用的 Python 版本。
- 少数复杂的包可能无法直接一条命令安装成功,特殊情况特殊对待,搜索引擎会给你指引。
- 如果你的电脑上装有多个版本的 Python,使用 pip 很可能会造成混乱。对于这个问题,virtualenv 是一个很好的解决方案,下次会专门来讲一讲。