附录 D 安装 Python 3
等到 Python 3 被预装到每一台计算机上时,估计烤面包机都已经被可以打印酥粒甜甜圈的 3D 打印机取代了。Windows 压根没有 Python,OS X、Linux、Unix 也都只是预装了旧版本的 Python 而已。在它们赶上 Python 最新版本前,我们只能自己手动安装 Python 3。
下面几节详细描述了如何做到以下几件事情:
查询你电脑中安装的 Python 版本(如果安装了)
安装标准发布版的 Python 3(如果没有安装)
安装 Anaconda 发布的 Python 科学计算模块
如果无法直接修改你的系统(权限问题等),不妨安装
pip
和virtualenv
进行第三方包的管理安装
conda
作为pip
的替代品
本书中大部分例子都是在 Python 3.3 的环境下编写并测试的,这是写本书时最新的稳定版本。有些是在 3.4 下编写并测试的,这个版本是在校对本书时发布的。新版本 Python 的变化网页(https://docs.python.org/3/whatsnew/)里描述了每一个新版本更新的内容。Python 安装包有多种来源,安装新版本的方式也不止一种。本附录会介绍其中两种安装方式。
如果你只会用标准解释器和库,建议从官方语言网站(https://www.python.org/)下载安装。
如果你除了使用 Python 的标准库外还需要使用一些附录 C 中描述的强大的科学计算库,就下载安装 Anaconda 吧。
D.1 安装标准Python
打开浏览器前往 Python 下载页(https://www.python.org/downloads/)。该网页会尝试获取你的操作系统类型并显示对应的 Python 版本。如果它显示的不对,你可以手动从下面几个链接中选择对应的版本下载:
Python Releases for Windows(https://www.python.org/downloads/windows/)
Python Releases for Mac OS X(https://www.python.org/downloads/mac-osx/)
Python Source Releases(Linux and Unix,https://www.python.org/downloads/source/)
你会看到类似图 D-1 的网页。
图 D-1:下载页实例
点击最新版本的下载链接。在编写本书时是 3.4.1。点击后会跳转到详细信息页,如图 D-2 所示。
图 D-2:下载详情页
你需要向下滚动才能找到实际下载链接(如图 D-3 所示)。
图 D-3:下载链接页的底部
点击下载链接可以跳转到实际发布版本页(如图 D-4 所示)。
图 D-4:可以下载的文件
现在点击对应版本的链接即可将 Python 下载到你的电脑了。
D.1.1 Mac OS X
点击 Mac OS X 64-bit/32-bit installer(https://www.python.org/ftp/python/3.4.1/python3.4.1-macosx10.6.dmg)链接下载 Mac 中使用的 .dmg 文件。下载完成后双击它,桌面上会弹出一个包含 4 个图标的窗口。右键单击 Python.mpkg,在弹出的对话框中点击“打开”。点击大约三次“继续”按钮,期间会显示一些法律声明,最后的对话框出现后点击“安装”。Python 3 的所有内容都会被安装到 usrlocal/bin/python3,不会对电脑上已安装的 Python 2 产生任何影响。
D.1.2 Windows
对于 Windows,根据自己计算机的具体环境选择下面两个安装包之一:
Windows x86 MSI installer(32 位,https://www.python.org/ftp/python/3.4.1/python3.4.1.msi)
Windows x86-64 MSI installer(64 位,https://www.python.org/ftp/python/3.4.1/python3.4.1.amd64.msi)
如果你不清楚自己的 Windows 到底是 32 位还是 64 位,可以执行下面几步来查看:
(1) 点击“开始”按钮;
(2) 右键点击“计算机”;
(3) 点击“属性”,就可以找到相关信息了。
点击适当的安装包链接(.msi 文件)。下载完成后双击打开,并根据安装指导进行安装。
D.1.3 Linux或Unix
Linux 和 Unix 用户可以选择下载 Python 源代码的压缩文件:
XZ compressed source tarball(https://www.python.org/ftp/python/3.4.1/Python3.4.1.tar.xz)
Gzipped source tarball(https://www.python.org/ftp/python/3.4.1/Python3.4.1.tgz)
下载上面两个链接中的一个。使用 tar xJ
(.xz 文件)或 tar xz
(.tgz 文件)命令解压,然后运行解压得到的 shell 脚本即可。
D.2 安装Anaconda
Anaconda 是一个针对科学计算设计的多合一安装包:包括 Python 本体、标准库以及许多实用的第三方库。目前为止,Anaconda 自带的仍是 Python 2 以及对应的解释器,但我们可以使用一些变通的方法强制它安装 Python 3。
最新的升级版本,Anaconda 2.0 会安装最近版本的 Python 及其标准库(编写此书时是 3.4)。它还会安装一些其他的实用工具,包括本书中讨论过的一些库:beautifulsoup4
、flask
、ipython
、matplotlib
、nose
、numpy
、pandas
、pillow
、pip
、scipy
、tables
、zmq
,等等。Anaconda 还包括一个跨平台的安装程序 conda
,它是 pip
的增强版,之后会简单介绍它。
前往与 Python 3 版本对应的下载页(http://repo.continuum.io/archive/)下载安装 Anaconda 2。点击与你使用的平台对应的链接(具体的版本信息可能与下面列出的不一致,但我相信你能识别出应该下载哪一个)。
如果需要在 Mac 上使用,点击 Anaconda3-2.0.0-MacOSX-x86_64.pkg(http://repo.continuum.io/anaconda3/Anaconda3-2.0.0-MacOSX-x86_64.pkg)。“下载完成后双击打开文件,然后按提示步骤安装 Anaconda 即可。安装器会将所有内容安装到 home 目录 1 下面的 anaconda 子目录中。
对于 Windows 用户,点击 32-bit version(http://bit.ly/a/warning?url=http%3a%2f%2frepo%2econtinuum%2eio%2fanaconda3%2fAnaconda3%2d2%2e0%2e0%2dWindows%2dx86%2eexe&hash=win-32b)或者 64-bit version(http://bit.ly/a/warning?url=http%3a%2f%2frepo%2econtinuum%2eio%2fanaconda3%2fAnaconda3%2d2%2e0%2e0%2dWindows%2dx86%5f64%2eexe&hash=win-64b)进行下载。下载完成后双击 .exe 进行安装。
对于 Linux 用户,点击 32-bit version(http://repo.continuum.io/anaconda3/Anaconda3-2.0.0-Linux-x86.sh)或者 64-bit version(http://bit.ly/a/warning?url=http%3a%2f%2frepo%2econtinuum%2eio%2fanaconda3%2fAnaconda3%2d2%2e0%2e0%2dWindows%2dx86%5f64%2eexe&hash=win-64b)进行下载。下载结束后,执行它(一个大型 shell 脚本)即可。
1一般是 UsersYour_Name。——译者注
确保你下载的文件是以 Anaconda3 开头的。如果文件名仅仅是以 Anaconda 或 Anaconda2 开头,那么你下载的应该是 Python 2 对应的版本,它不是我们想要的。
Anaconda 将所有文件都安装到属于它自己的目录中(home 路径下 anaconda 目录中)。这意味着它的安装不会对你电脑上的任何 Python 版本产生影响,同时你也不需要特殊的权限(像 admin
和 root
之类的)来执行安装。
如果你想要知道 Anaconda 包含哪些 Python 包,可以访问 Anaconda 文档页(http://docs.continuum.io/anaconda/pkg-docs.html),点击文档顶部选择框中的“Python version:3.4”即可。我上次查看时总共列出了 141 个包。
安装完毕 Anaconda 3 后,你可以看看这位“圣诞老人”都在你的电脑里放了些什么小礼物。执行下面的命令:
$ ./conda list
# packages in environment at Userswilliamlubanovic/anaconda:
#
anaconda 2.0.0 np18py34_0
argcomplete 0.6.7 py34_0
astropy 0.3.2 np18py34_0
backports.ssl-match-hostname 3.4.0.2 <pip>
beautifulsoup 4.3.1 py34_0
beautifulsoup4 4.3.1 <pip>
binstar 0.5.3 py34_0
bitarray 0.8.1 py34_0
blaze 0.5.0 np18py34_0
blz 0.6.2 np18py34_0
bokeh 0.4.4 np18py34_1
cdecimal 2.3 py34_0
colorama 0.2.7 py34_0
conda 3.5.2 py34_0
conda-build 1.3.3 py34_0
configobj 5.0.5 py34_0
curl 7.30.0 2
cython 0.20.1 py34_0
datashape 0.2.0 np18py34_1
dateutil 2.1 py34_2
docutils 0.11 py34_0
dynd-python 0.6.2 np18py34_0
flask 0.10.1 py34_1
freetype 2.4.10 1
future 0.12.1 py34_0
greenlet 0.4.2 py34_0
h5py 2.3.0 np18py34_0
hdf5 1.8.9 2
ipython 2.1.0 py34_0
ipython-notebook 2.1.0 py34_0
ipython-qtconsole 2.1.0 py34_0
itsdangerous 0.24 py34_0
jdcal 1.0 py34_0
jinja2 2.7.2 py34_0
jpeg 8d 1
libdynd 0.6.2 0
libpng 1.5.13 1
libsodium 0.4.5 0
libtiff 4.0.2 0
libxml2 2.9.0 1
libxslt 1.1.28 2
llvm 3.3 0
llvmpy 0.12.4 py34_0
lxml 3.3.5 py34_0
markupsafe 0.18 py34_0
matplotlib 1.3.1 np18py34_1
mock 1.0.1 py34_0
multipledispatch 0.4.3 py34_0
networkx 1.8.1 py34_0
nose 1.3.3 py34_0
numba 0.13.1 np18py34_0
numexpr 2.3.1 np18py34_0
numpy 1.8.1 py34_0
openpyxl 2.0.2 py34_0
openssl 1.0.1g 0
pandas 0.13.1 np18py34_0
patsy 0.2.1 np18py34_0
pillow 2.4.0 py34_0
pip 1.5.6 py34_0
ply 3.4 py34_0
psutil 2.1.1 py34_0
py 1.4.20 py34_0
pycosat 0.6.1 py34_0
pycparser 2.10 py34_0
pycrypto 2.6.1 py34_0
pyflakes 0.8.1 py34_0
pygments 1.6 py34_0
pyparsing 2.0.1 py34_0
pyqt 4.10.4 py34_0
pytables 3.1.1 np18py34_0
pytest 2.5.2 py34_0
python 3.4.1 0
python-dateutil 2.1 <pip>
python.app 1.2 py34_2
pytz 2014.3 py34_0
pyyaml 3.11 py34_0
pyzmq 14.3.0 py34_0
qt 4.8.5 3
readline 6.2 2
redis 2.6.9 0
redis-py 2.9.1 py34_0
requests 2.3.0 py34_0
rope 0.9.4 py34_1
rope-py3k 0.9.4 <pip>
runipy 0.1.0 py34_0
scikit-image 0.9.3 np18py34_0
scipy 0.14.0 np18py34_0
setuptools 3.6 py34_0
sip 4.15.5 py34_0
six 1.6.1 py34_0
sphinx 1.2.2 py34_0
spyder 2.3.0rc1 py34_0
spyder-app 2.3.0rc1 py34_0
sqlalchemy 0.9.4 py34_0
sqlite 3.8.4.1 0
ssl_match_hostname 3.4.0.2 py34_0
sympy 0.7.5 py34_0
tables 3.1.1 <pip>
tk 8.5.15 0
tornado 3.2.1 py34_0
ujson 1.33 py34_0
werkzeug 0.9.4 py34_0
xlrd 0.9.3 py34_0
xlsxwriter 0.5.5 py34_0
yaml 0.1.4 1
zeromq 4.0.4 0
zlib 1.2.7 1
D.3 安装并使用pip
和virtualenv
pip
是最受欢迎的管理第三方(非标准库)Python 包的包。这么实用的一款工具竟然不是标准 Python 的一部分实在是让人觉得很烦恼,因为我们不得不自己手动下载安装。我的一个朋友曾经说过:这简直就是残忍恼人的仪式。好消息是从 Python 3.4 开始,pip
已经被包含到标准 Python 中了!
virtualenv
经常与 pip
一起使用,它允许我们将 Python 包安装到指定的路径(文件夹)中以避免它与一些已经安装了的 Python 包互相影响。它的精髓在于,即使你没有权限修改已安装的 Python 包,你仍然可以随心所欲地使用任何你喜欢的 Python 工具 2。
2既然不会互相影响,重新安装一份即可。——译者注
如果你安装了 Python 3,但发现使用的仍然是 Python 2 版本的 pip
,下面的命令可以帮助你在 Linux 或 OS X 下获取 Python 3 对应的版本:
$ curl -O http://python-distribute.org/distribute_setup.py
$ sudo python3 distribute_setup.py
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ sudo python3 get-pip.py
上面的命令会将 pip-3.3
安装到你的 Python 3 安装路径下的 bin
目录中。之后你就可以使用 pip-3.3
而不是 Python 2 的 pip
来安装第三方包了。
下面列出一些有关 pip 和 virtualenv 教程的链接:
A non-magical introduction to Pip and Virtualenv for Python beginners(http://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/)
The hitchhiker's guide to packaging: pip(http://the-hitchhikers-guide-to-packaging.readthedocs.org/en/latest/pip.html)
D.4 安装并使用conda
目前为止,pip
下载得到的大多是源文件而不是编译完成的二进制文件,但有些 Python 模块并不是用 Python 编写的而是用 C 语言库编写的,这意味着我们不得不进行额外的编译工作,非常麻烦。最近,Anaconda 的开发者们编写了 conda
(http://www.continuum.io/blog/conda),旨在解决使用 pip
和其他工具时存在的各种问题。pip
是一个 Python 专属的包管理器,但 conda
可以运行在任何软件和语言环境中。conda
还同时解决了使用 pip
时不得不同时使用 virtualenv
这样的工具来保证安装的包之间互不影响的问题。
如果你安装了 Anaconda,conda
就已经附带安装完毕。如果你没有安装 Anaconda,可以从 miniconda 网页(http://conda.pydata.org/miniconda.html)下载 conda
和 与它绑定的 Python 3。和 Anaconda 一样,请确保你下载的文件以 Miniconda3
开头,仅以 Miniconda
开头的是 Python 2 对应的版本。
conda
依赖 pip
。尽管 conda
有自己的包仓库(https://binstar.org/),但像 conda search
这样的命令在执行时除了搜索 conda
包仓库中的内容外,还会搜索 PyPi 库(http://pypi.python.org/)。如果你在使用 pip
时遇到了问题,不妨试试 conda
。