附录 D 安装 Python 3

等到 Python 3 被预装到每一台计算机上时,估计烤面包机都已经被可以打印酥粒甜甜圈的 3D 打印机取代了。Windows 压根没有 Python,OS X、Linux、Unix 也都只是预装了旧版本的 Python 而已。在它们赶上 Python 最新版本前,我们只能自己手动安装 Python 3。

下面几节详细描述了如何做到以下几件事情:

  • 查询你电脑中安装的 Python 版本(如果安装了)

  • 安装标准发布版的 Python 3(如果没有安装)

  • 安装 Anaconda 发布的 Python 科学计算模块

  • 如果无法直接修改你的系统(权限问题等),不妨安装 pipvirtualenv 进行第三方包的管理

  • 安装 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 版本。如果它显示的不对,你可以手动从下面几个链接中选择对应的版本下载:

你会看到类似图 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 到底是 32 位还是 64 位,可以执行下面几步来查看:

(1) 点击“开始”按钮;

(2) 右键点击“计算机”;

(3) 点击“属性”,就可以找到相关信息了。

点击适当的安装包链接(.msi 文件)。下载完成后双击打开,并根据安装指导进行安装。

D.1.3 Linux或Unix

Linux 和 Unix 用户可以选择下载 Python 源代码的压缩文件:

下载上面两个链接中的一个。使用 tar xJ(.xz 文件)或 tar xz(.tgz 文件)命令解压,然后运行解压得到的 shell 脚本即可。

D.2 安装Anaconda

Anaconda 是一个针对科学计算设计的多合一安装包:包括 Python 本体、标准库以及许多实用的第三方库。目前为止,Anaconda 自带的仍是 Python 2 以及对应的解释器,但我们可以使用一些变通的方法强制它安装 Python 3。

最新的升级版本,Anaconda 2.0 会安装最近版本的 Python 及其标准库(编写此书时是 3.4)。它还会安装一些其他的实用工具,包括本书中讨论过的一些库:beautifulsoup4flaskipythonmatplotlibnosenumpypandaspillowpipscipytableszmq,等等。Anaconda 还包括一个跨平台的安装程序 conda,它是 pip 的增强版,之后会简单介绍它。

前往与 Python 3 版本对应的下载页(http://repo.continuum.io/archive/)下载安装 Anaconda 2。点击与你使用的平台对应的链接(具体的版本信息可能与下面列出的不一致,但我相信你能识别出应该下载哪一个)。

1一般是 UsersYour_Name。——译者注

附录 D 安装 Python 3 - 图5 确保你下载的文件是以 Anaconda3 开头的。如果文件名仅仅是以 Anaconda 或 Anaconda2 开头,那么你下载的应该是 Python 2 对应的版本,它不是我们想要的。

Anaconda 将所有文件都安装到属于它自己的目录中(home 路径下 anaconda 目录中)。这意味着它的安装不会对你电脑上的任何 Python 版本产生影响,同时你也不需要特殊的权限(像 adminroot 之类的)来执行安装。

如果你想要知道 Anaconda 包含哪些 Python 包,可以访问 Anaconda 文档页(http://docs.continuum.io/anaconda/pkg-docs.html),点击文档顶部选择框中的“Python version:3.4”即可。我上次查看时总共列出了 141 个包。

安装完毕 Anaconda 3 后,你可以看看这位“圣诞老人”都在你的电脑里放了些什么小礼物。执行下面的命令:

  1. $ ./conda list
  2. # packages in environment at Userswilliamlubanovic/anaconda:
  3. #
  4. anaconda 2.0.0 np18py34_0
  5. argcomplete 0.6.7 py34_0
  6. astropy 0.3.2 np18py34_0
  7. backports.ssl-match-hostname 3.4.0.2 <pip>
  8. beautifulsoup 4.3.1 py34_0
  9. beautifulsoup4 4.3.1 <pip>
  10. binstar 0.5.3 py34_0
  11. bitarray 0.8.1 py34_0
  12. blaze 0.5.0 np18py34_0
  13. blz 0.6.2 np18py34_0
  14. bokeh 0.4.4 np18py34_1
  15. cdecimal 2.3 py34_0
  16. colorama 0.2.7 py34_0
  17. conda 3.5.2 py34_0
  18. conda-build 1.3.3 py34_0
  19. configobj 5.0.5 py34_0
  20. curl 7.30.0 2
  21. cython 0.20.1 py34_0
  22. datashape 0.2.0 np18py34_1
  23. dateutil 2.1 py34_2
  24. docutils 0.11 py34_0
  25. dynd-python 0.6.2 np18py34_0
  26. flask 0.10.1 py34_1
  27. freetype 2.4.10 1
  28. future 0.12.1 py34_0
  29. greenlet 0.4.2 py34_0
  30. h5py 2.3.0 np18py34_0
  31. hdf5 1.8.9 2
  32. ipython 2.1.0 py34_0
  33. ipython-notebook 2.1.0 py34_0
  34. ipython-qtconsole 2.1.0 py34_0
  35. itsdangerous 0.24 py34_0
  36. jdcal 1.0 py34_0
  37. jinja2 2.7.2 py34_0
  38. jpeg 8d 1
  39. libdynd 0.6.2 0
  40. libpng 1.5.13 1
  41. libsodium 0.4.5 0
  42. libtiff 4.0.2 0
  43. libxml2 2.9.0 1
  44. libxslt 1.1.28 2
  45. llvm 3.3 0
  46. llvmpy 0.12.4 py34_0
  47. lxml 3.3.5 py34_0
  48. markupsafe 0.18 py34_0
  49. matplotlib 1.3.1 np18py34_1
  50. mock 1.0.1 py34_0
  51. multipledispatch 0.4.3 py34_0
  52. networkx 1.8.1 py34_0
  53. nose 1.3.3 py34_0
  54. numba 0.13.1 np18py34_0
  55. numexpr 2.3.1 np18py34_0
  56. numpy 1.8.1 py34_0
  57. openpyxl 2.0.2 py34_0
  58. openssl 1.0.1g 0
  59. pandas 0.13.1 np18py34_0
  60. patsy 0.2.1 np18py34_0
  61. pillow 2.4.0 py34_0
  62. pip 1.5.6 py34_0
  63. ply 3.4 py34_0
  64. psutil 2.1.1 py34_0
  65. py 1.4.20 py34_0
  66. pycosat 0.6.1 py34_0
  67. pycparser 2.10 py34_0
  68. pycrypto 2.6.1 py34_0
  69. pyflakes 0.8.1 py34_0
  70. pygments 1.6 py34_0
  71. pyparsing 2.0.1 py34_0
  72. pyqt 4.10.4 py34_0
  73. pytables 3.1.1 np18py34_0
  74. pytest 2.5.2 py34_0
  75. python 3.4.1 0
  76. python-dateutil 2.1 <pip>
  77. python.app 1.2 py34_2
  78. pytz 2014.3 py34_0
  79. pyyaml 3.11 py34_0
  80. pyzmq 14.3.0 py34_0
  81. qt 4.8.5 3
  82. readline 6.2 2
  83. redis 2.6.9 0
  84. redis-py 2.9.1 py34_0
  85. requests 2.3.0 py34_0
  86. rope 0.9.4 py34_1
  87. rope-py3k 0.9.4 <pip>
  88. runipy 0.1.0 py34_0
  89. scikit-image 0.9.3 np18py34_0
  90. scipy 0.14.0 np18py34_0
  91. setuptools 3.6 py34_0
  92. sip 4.15.5 py34_0
  93. six 1.6.1 py34_0
  94. sphinx 1.2.2 py34_0
  95. spyder 2.3.0rc1 py34_0
  96. spyder-app 2.3.0rc1 py34_0
  97. sqlalchemy 0.9.4 py34_0
  98. sqlite 3.8.4.1 0
  99. ssl_match_hostname 3.4.0.2 py34_0
  100. sympy 0.7.5 py34_0
  101. tables 3.1.1 <pip>
  102. tk 8.5.15 0
  103. tornado 3.2.1 py34_0
  104. ujson 1.33 py34_0
  105. werkzeug 0.9.4 py34_0
  106. xlrd 0.9.3 py34_0
  107. xlsxwriter 0.5.5 py34_0
  108. yaml 0.1.4 1
  109. zeromq 4.0.4 0
  110. zlib 1.2.7 1

D.3 安装并使用pipvirtualenv

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 对应的版本:

  1. $ curl -O http://python-distribute.org/distribute_setup.py
  2. $ sudo python3 distribute_setup.py
  3. $ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
  4. $ sudo python3 get-pip.py

上面的命令会将 pip-3.3 安装到你的 Python 3 安装路径下的 bin 目录中。之后你就可以使用 pip-3.3 而不是 Python 2 的 pip 来安装第三方包了。

下面列出一些有关 pip 和 virtualenv 教程的链接:

D.4 安装并使用conda

目前为止,pip 下载得到的大多是源文件而不是编译完成的二进制文件,但有些 Python 模块并不是用 Python 编写的而是用 C 语言库编写的,这意味着我们不得不进行额外的编译工作,非常麻烦。最近,Anaconda 的开发者们编写了 condahttp://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