安装和设置
由于人们用Python所做的事情不同,所以没有一个普适的Python及其插件包的安装方案。由于许多读者的Python科学计算环境都不能完全满足本书的需要,所以接下来我将详细介绍各个操作系统上的安装方法。我建议使用下列Python安装包之一:
·Enthought Python Distribution译注1:来自Enthought(http://continumm.io/downloads)的面向科学计算的Python安装包。包括EPDFree(免费的基本版,带有NumPy、SciPy、matplotlib、Chaco以及IPython)和EPD Full(完整版,含有100多个针对各种领域的科学计算包)。EPD Full对高校免费,非高校用户需要缴纳年费。
·Python(x,y)(http://pythonxy.googlecode.com):Windows平台上免费的Python科学计算安装包。
我将用EPDFree来说明安装过程,当然如果有需要的话,你也可以选择其他产品。编写本书时,EPD用的是Python 2.7,今后可能会有些变动。安装完毕之后,你将可以用到下面这些包:
·Python科学计算基础库:NumPy、SciPy、matplotlib以及IPython。这些都包含在EPDFree中了。
·IPython Notebook依赖项:tornado和pyzmq。这些也都包含在EPDFree中了。
·pandas(0.8.2版或更高版本)。
在阅读本书的过程中,你可能还需要安装:statsmodels、PyTables、PyQt(PySide也行)、xlrd、lxml、basemap、pymongo以及requests等(它们被用在不同的示例中)。现在暂时还不需要安装这些库,我建议你在需要的时候再安装。例如,在OS X或Linux上安装PyQt或PyTables可能会很困难。目前最重要的事情是先用EPDFree和pandas这种最小配置运行起来再说。
关于各个Python库及其安装文件和帮助信息,请访问Python Package Index(即PyPI,http://pypi.python.org)。你还可以在这里找到不少新的Python库。
注意: 为了简单起见,我将不会讨论pip译注2和virtualenv这类比较复杂的环境管理工具。网上可以找到许多介绍这些工具的优秀教程。
警告: 有些用户可能会对诸如IronPython、Jython、PyPy之类的Python实现感兴趣。为了使用本书所介绍的那些工具,(目前)就需要使用基于C的标准Python解释器(也就是CPython)。
Windows
先从http://www.enthought.com下载EPDFree的安装包,它可能是一个名字类似于epd_free-7.3-1-win-x86.msi的MSI安装包[译注3](part0008.html#z3)。运行该安装包并接受默认的安装位置C:\Python27。如果你之前在这里安装过Python,可能需要先将其删除(可以手工删除,也可以使用控制面板中的“添加/或删除程序”功能)。
接下来,你需要验证是否已经成功将Python添加到系统路径,并且没有跟早期安装的Python版本发生冲突。首先,打开命令提示符(打开“开始”菜单,启动“命令提示符”应用程序,即cmd.exe)。输入python尝试启动Python解释器。你应该可以看到与已安装的EPDFree版本相匹配的一段消息:
- C:\Users\Wes>python
- Python 2.7.3 |EPD_free 7.3-1 (32-bit)| (default, Apr 12 2012, 14:30:37) on win32
- Type "credits", "demo" or "enthought" for more information.
- >>>
如果你看到的是其他版本的EPD信息或根本什么也看不到,那就需要清理Windows环境变量。在Windows 7上,可以在程序搜索框中输入"environment variables",然后编辑你的账户下的环境变量。在Windows XP上,需要进入“控制面板”→“系统”→“高级”→“环境变量”。在弹出窗口中找到Path变量。它需要含有下面这两个以分号隔开的目录路径:
- C:\Python27;C:\Python27\Scripts
如果你之前安装了其他版本的Python,那就需要删除系统和用户Path变量中与之相关的一切路径。修改路径之后,需要重启命令提示符才能使修改生效。
能够在命令提示符中成功启动Python之后,就该安装pandas了。最简单的办法就是直接到http://pypi.python.org/pypi/pandas下载合适的二进制安装包。对于EPDFree,应该选择pandas-0.9.0.win32-py2.7.exe。将其安装好之后,接下来启动IPython来验证一下是不是万事俱备了:引入pandas,然后绘制一个简单的matplotlib图形。
- C:\Users\Wes>ipython --pylab
- Python 2.7.3 |EPD_free 7.3-1 (32-bit)|
- Type "copyright", "credits" or "license" for more information.
- IPython 0.12.1 -- An enhanced Interactive Python.
- ? -> Introduction and overview of IPython's features.
- %quickref -> Quick reference.
- help -> Python's own help system.
- object? -> Details about 'object', use 'object??' for extra details.
- Welcome to pylab, a matplotlib-based Python environment [backend: WXAgg]. For more information, type 'help(pylab)'.
- In [1]: import pandas
- In [2]: plot(arange(10))
如果成功,就不会出现错误信息,而且会弹出一个绘图窗口。还可以输入下列指令译注4来检查IPython HTML notebook是否安装成功:
- $ ipython notebook --pylab=inline
警告: 如果你是在Windows上使用IPython notebook应用程序而且通常使用的是Internet Explorer的话,那你可能需要改用Mozilla Firefox或Google Chrome了译注5。
Windows上的EPDFree只有32位版本。如果需要使用64位版本,最简单的办法就是直接使用EPD Full译注6。如果你不想购买EPD订阅且愿意自己动手一步步安装,可以试试由加州大学欧文分校的Christoph Gohlke提供的非官方安装包(http://www.lfd.uci.edu/~gohlke/pythonlibs/),它既有32位版也有64位版,且包含本书所需的所有库。
苹果OS X
在OS X上,首先需要安装Xcode,它含有苹果的软件开发工具套件。我们所需的部分是gcc C和C++编译器。Xcode安装包可以在随计算机发布的OS X安装光盘中找到,也可以直接从苹果公司的网站上下载。
装好Xcode之后,到"Applications→Utilities"去启动终端(Terminal.app)。输入gcc并按回车键。你将会看到如下信息:
- $ gcc
- i686-apple-darwin10-gcc-4.2.1: no input files
现在就该安装EPDFree了。下载一个名为epd_free-7.3-1-macosx-i386.dmg的磁盘镜像文件。双击该.dmg文件以将其挂载到系统,然后双击其中的.mpkg文件来运行安装程序。
安装文件启动之后,会自动将EPDFree可执行文件的路径添加到你的.bash_profile文件中。该文件位于/Users/your_uname/.bash_profile:
- # Setting PATH for EPD_free-7.3-1
- PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"
- export PATH
如果在后续步骤中遇到任何问题,首先应该检查一下你的.bash_profile,看看是否需要将上面那个目录添加进去。
现在就该安装pandas了。在终端中执行下面这条命令:
- $ sudo easy_install pandas
- Searching for pandas
- Reading http://pypi.python.org/simple/pandas/
- Reading http://pandas.pydata.org
- Reading http://pandas.sourceforge.net
- Best match: pandas 0.9.0
- Downloading http://pypi.python.org/packages/source/p/pandas/pandas-0.9.0.zip
- Processing pandas-0.9.0.zip
- Writing /tmp/easy_install-H5mIX6/pandas-0.9.0/setup.cfg
- Running pandas-0.9.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-H5mIX6/
- pandas-0.9.0/egg-dist-tmp-RhLG0z
- Adding pandas 0.9.0 to easy-install.pth file
- Installed /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/
- site-packages/pandas-0.9.0-py2.7-macosx-10.5-i386.egg
- Processing dependencies for pandas
- Finished processing dependencies for pandas
为了验证是否一切正常,我们以Pylab模式启动IPython,然后尝试加载pandas并绘制一张图片:
- $ ipython --pylab
- 22:29 ~/VirtualBox VMs/WindowsXP $ ipython
- Python 2.7.3 |EPD_free 7.3-1 (32-bit)| (default, Apr 12 2012, 11:28:34)
- Type "copyright", "credits" or "license" for more information.
- IPython 0.12.1 -- An enhanced Interactive Python.
- ? -> Introduction and overview of IPython's features.
- %quickref -> Quick reference.
- help -> Python's own help system.
- object? -> Details about 'object', use 'object??' for extra details.
- Welcome to pylab, a matplotlib-based Python environment [backend: WXAgg].
- For more information, type 'help(pylab)'.
- In [1]: import pandas
- In [2]: plot(arange(10))
如果成功,将会弹出一个绘图窗口,其中画的是一条直线。
GNU/Linux
注意: 有些(但不是全部)Linux产品自带的Python包版本较新,且可以通过内置的包管理工具(如apt)进行安装。我将详细讲解EPDFree的安装步骤,因为它在不同的Linux发行版之间是差不多的。
对于不同的Linux产品,具体的安装过程会有一些不同,我这里将以基于Debian的GNU/Linux系统(如Ubuntu和Mint)为例来进行讲解。除EPDFree之外,其他的安装过程跟OS X差不多。其安装包是一个只能在终端中执行的shell脚本。根据系统是32位还是64位,需要相应地安装x86版(32位)或x86_64版(64位)。然后你将会得到一个名为epd_free-7.3-1-rh5-x86_64.sh的文件。通过bash执行该脚本即可开始安装:
- $ bash epd_free-7.3-1-rh5-x86_64.sh
在接受了许可协议之后,你需要选择EPDFree文件的存放位置。我建议将这些文件安装在你的home目录中,比如/home/wesm/epd(将wesm替换为你的用户名即可)。
安装完毕之后,你需要将EPDFree的bin目录添加到$PATH变量中去。如果你用的是bash shell(比如Ubuntu默认用的就是这个),则在你的.bashrc中加上下面这句路径添加指令:
- export PATH=/home/wesm/epd/bin:$PATH
很明显,需要将/home/wesm/epd/替换为你所使用的安装目录。做完这些事情之后,你可以启动一个新的终端进程,也可以通过source ~/.bashrc重启你的.bashrc。
接下来还需要用到一个C编译器(比如gcc)。许多Linux产品都含有gcc,但有些则没有。在Debian系统中,可以执行下面这条指令来安装gcc:
- sudo apt-get install gcc
如果在命令行中输入gcc,就可以看到:
- $ gcc
- gcc: no input files
现在可以安装pandas了:
- $ easy_install pandas
如果你是以root权限来安装EPDFree的,就需要在命令中加上sudo并输入sudo或root密码。使用跟OS X相同的检测方式即可验证是否一切正常。
Python 2和Python 3
Python社区正在慢慢地从Python 2系列解释器过渡到Python 3系列。在Python 3.0问世以前,所有的Python代码都是向后兼容的。为了让Python语言更加先进,Python社区认为作出一些向后不兼容的修改是必要的。
本书是基于Python 2.7编写的,这是因为大部分Python科学计算社区还没有转向Python 3。好消息是,如果你碰巧正在使用Python 3.2,在学习本书的过程中一般也不会遇到什么麻烦。
集成开发环境(IDE)
当有人问我“你的标准开发环境是怎样的”时,我几乎总是回答“IPython外加一个文本编辑器”。我通常都在IPython中编写和调试程序,而且它可以交互式地处理数据,并通过可视化的方式验证某个数据操作的结果是否正确。诸如pandas和NumPy这样的库也可以轻松便捷地在这个shell中使用。
但是相对于文本编辑器,总有人会更喜欢IDE。因为它们提供了许多不错的“代码智能化”功能,比如自动完成以及快速获取函数和类的文档等。你可以试试下面这些:
·Eclipse +PyDev插件
·Python Tools for Visual Studio(针对Windows用户)
·PyCharm
·Spyder
·Komodo IDE
译注1:已经更名为Enthought Canopy。EPDFree对应的是Enthought Canopy Express。相比来说EPDFree自然更好用,不过为了保证阅读本书时不遇到麻烦,建议按照本书介绍法操作。(其实就算按照书上的说明操作,一样会遇到不少麻烦,我会尽量给出说明。)
译注2:虽然安装过程不大轻松,但还是建议后面装一下,因为它可以使你在安装那些库的时候更轻松愉快。
译注3:由于软件版本更新较快,所以建议到网上找一个一模一样的安装包,不然有些例子的结果可能会跟书上介绍的不一样。
译注4:如果只用过Windows,要注意前面的"$",这是Linux或UNIX或Mac的默认命令提示符。本书应该就是用Mac测试代码的,所以这样的提示符不少,后面代码中还有很多,请读者注意。
译注5:为什么?难道作者以为全世界人民都还在用IE6不成?译者使用IE9/IE10均无压力完成。
译注6:还是建议使用32位版本的,最主要的原因仍然是“跟原书一致,以免抓狂”。