《Python核心编程(第二版)》——1.5 运行Python

本节书摘来自异步社区《Python核心编程(第二版)》一书中的第1章,第1.5节,作者[美]Wesley J. Chun,宋吉广 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.5 运行Python

有三种不同的办法来启动Python。最简单的方式就是交互式的启动解释器,每次输入一行Python代码来执行。另外一种启动Python的方法是运行Python脚本。这样会调用相关的脚本解释器。最后一种办法就是用集成开发环境中的图形用户界面运行Python。集成开发环境通常整合了其他的工具,例如集成的调试器、文本编辑器,而且支持各种像CVS这样的源代码版本控制工具。

1.5.1 命令行上的交互式解释器

在命令行上启动解释器,你马上就可以开始编写Python代码。在Unix,DOS或其他提供命令行解释器或shell窗口的系统中,都可以这么做。学习Python的最好方法就是在交互式解释器中练习。在你需要体验Python的一些特性时,交互式解释器也非常有用。

Unix衍生系统(Linux,MacOS X,Solaris,FreeBSD等)

要访问Python,除非你已经将Python所在路径添加到系统搜索路径之中,否则就必须输入Python的完整路径名才可以启动Python。Python一般安装在/usr/bin或/usr/local/bin子目录中。

我们建议读者把Python(python执行文件,或Jython执行文件——如果你想使用Java版的解释器的话)添加到你的系统搜索路径之中,这样你只需要输入解释器的名字就可以启动Python解释器了,而不必每次都输入完整路径。

要将Python添加到搜索路径中,只需要检查你的登录启动脚本,找到以set path或PATH=指令开始,后面跟着一串目录的那行,然后添加解释器的完整路径。所有事情都做完之后,更新一下shell路径变量。现在在Unix提示符(根据shell的不同可能是%或$)处键入python(或jython)就可以启动解释器了,如下所示。

$ python

Python启动成功之后,你会看到解释器启动信息,表明Python的版本号及平台信息,最后显示解释器提示符“>>>”等待你输入Python命令。

Windoes/DOS环境

为了把 Python 添加到搜索路径中,你需要编辑 C:autoexec.bat 文件并将完整的 Python 安装路径添加其中。这通常是C:Python或C:Program Files Python(或是“Program Files”在DOS下的简写名字C:Progra~1Python)。

要想在DOS中将Python添加到搜索路径中去,需要编辑C:autoexec.bat文件,把Python的安装目录添加上去。一般是C:Python或C:Program FilesPython(或者它在DOS中的简写名字C:Progra~1Python)。在一个DOS窗口中(它可以是纯DOS环境或是在Windows中的启动的一个DOS窗口)启动Python的命令与Unix操作系统是一样的,都是“python”,它们唯一的区别在于提示符不同,DOS中是C:>,如图1-1所示。


《Python核心编程(第二版)》——1.5 运行Python

C:\> python

命令行选项

当从命令行启动Python的时候,可以给解释器一些选项。这里有部分选项可供选择。

—d   提供调试输出。

—o   生成优化的字节码(生成 .pyo 文件)。

—s   不导入 site模块以在启动时查找Python路径。

—v    冗余输出(导入语句详细追踪)。

—m mod 将一个模块以脚本形式运行。

—Q opt 除法选项(参阅文档)。

—c cmd 运行以命令行字符串形式提交的 Python 脚本。

file   从给定的文件运行Python脚本(参阅后文)。


《Python核心编程(第二版)》——1.5 运行Python

1.5.2 从命令行启动脚本

Unix衍生系统(Linux,MacOS X,Solaris,FreeBSD等)

不管哪种Unix平台,Python脚本都可以像下面这样,在命令行上通过解释器执行。

$ python script.py

Python脚本使用扩展名.py,上面的例子也说明了这一点。

Unix平台还可以在不明确指定Python解释器的情况下,自动执行Python 解释器。如果你使用的是类Unix平台,你可以在你的脚本的第一行使用shell魔术字符串(“sh-bang”)。

#!/usr/local/bin/python

在#!之后写上Python解释器的完整路径,我们前面曾经提到,Python解释器通常安装在 /usr/local/bin或/usr/bin目录下。如果Python没有安装到那里,你就必须确认你的Python解释器确实位于你指定的路径。错误的路径将导致出现类似于“找不到命令”的错误信息。

有一个更好的方案,许多Unix系统有一个命令叫env,位于/bin或/usr/bin中。它会帮你在系统搜索路径中找到python解释器。如果你的系统拥有env,你的启动行就可以改为下面这样。

#!/usr/bin/env python

或者,如果你的env位于/bin的话,

#!/bin/env python

当你不能确定Python的具体路径或者Python的路径经常变化时(但不能挪到系统搜索路径之外),env 就非常有用。当你在你的脚本首行书写了合适的启动指令之后,这个脚本就能够直接执行。当调用脚本时,会先载入Python解释器,然后运行你的脚本。我们刚才提到,这样就不必显式调用Python 解释器了,而只需要键入脚本的文件名。

$ script.py

注意,在键入文件名之前,必须先将这个文件的属性设置为可以执行。在文件列表中,你的文件应该将它设置为自己拥有rwx权限。如果在确定Python安装路径,或者改变文件权限,或使用chmod 命令时遇到困难,请和系统管理员一道检查一下。

Windows/DOS环境

DOS命令窗口不支持自动执行机制,不过至少在WinXP当中,它能像在Windows 中一样做到通过输入文件名执行脚本,这就是“文件类型”接口。这个接口允许Windows根据文件扩展名识别文件类型,从而调用相应的程序来处理这个文件。举例来说,如果你安装了带有PythonWin的Python,双击一个带有.py扩展名的Python脚本就会自动调用Python或PythonWin IDE(如果你安装了的话)来执行你的脚本。运行以下命令就和双击它的效果一样。

C:\> script.py

这样无论是基于Unix操作系统还是Win32操作系统都可以无需在命令行指定Python解释器的情况下运行脚本,但是如果调用脚本时,得到类似“命令无法识别”之类的错误提示信息,你也总能正确处理。

1.5.3 集成开发环境

你也可以从图形用户界面环境运行Python,你所需要的是支持Python的GUI程序。如果你已经找到了一个,很有可能它恰好也是集成开发环境。集成开发环境不仅仅是图形接口,通常会带有源代码编辑器、追踪和排错工具。

Unix衍生系统(Linux,MacOS X,Solaris,FreeBSD等)

IDLE可以说是Unix平台下Python的第一个集成开发环境(IDE)。最初版本的IDLE也是Guido van Rossum开发的,在Python1.5.2中,它首次露面。IDLE代表的就是IDE,只不过多了一个“L”。我猜测,IDLE是借用了“Monty Python”一个成员的名字[1]...嗯...IDLE基于Tkinter,要运行它的话你的系统中必须先安装Tcl/Tk。目前的Python发行版都带有一个迷你版的Tcl/Tk库,因此就不再需要 Tcl/Tk 的完整安装了。

如果你已经在系统中安装好了Python,或者你有一个Python RPM包,可是它并没有包含 IDLE或Tkinter,那在你尝试IDLE之前,必须先将这两样东西安装好。(如果你需要,确实有一个独立的Tkinter RPM包可供下载,以便和Python一起工作)如果你是自己编译的Python,而且有Tk库可用,那Tkinter 会自动编译进Python,而且Tkinter和IDLE也会随Python的安装而安装。

如果你打算运行IDLE,就必须找到你的标准库安装位置:/usr/local/lib/python2.x/idlelib/idle.py。如果你是自己编译Python,你会在/usr/local/bin 目录中发现一个名为idle的脚本,这样你就可以在shell命令行中直接运行idle。图1-3是类Unix系统下的IDLE界面。MacOS X 是一个非常类似Unix(基于mach内核,BSD服务)的操作系统。在MacOS X下,Python可以用传统的Unix编译工具编译。MacOS X发行版自带一个编译好的Python解释器,不过并没有任何一个面向Mac的特殊工具(比如GNU readline,IDE等),当然也没有Tkinter和IDLE。

你可能会打算自己下载并编译一个出来,不过要小心一点,有时你新安装的Python会与Apple预装的版本混淆在一起。认真一点没有坏处。你也可以通过 Fink/Finkcommander 和DarwinPorts得到MacOS X版的Python。

http://fink.sourceforge.net/

http://darwinports.org

如果要得到最新Mac版Python的组建和信息,请访问如下网页

http://undefined.org/python

http://pythonmac.org/packages

另一个选择是从Python站点下载MacOS X的通用二进制包。这个磁盘映像文件(DMG)要求操作系统版本至少为10.3.9,它适用于基于PowerPC和Intel硬件的Mac机器。


《Python核心编程(第二版)》——1.5 运行Python

Windows环境

PythonWin是Python的第一个Windows接口,并且还是个带有图形用户界面的集成开发环境。PythonWin发行版本中包含WindowsAPI和COM扩展。PythonWin本身是针对MFC库编写的,它可以作为开发环境来开发你自己的Windows应用程序。你可以从下面给出的网页中下载并安装它。

PythonWin通常被安装在和Python相同的目录中,在它自己的安装目录C:Python2xLib site-packagespythonwin中有可执行的启动文件pythonwin.exe。PythonWin拥有一个带有颜色显示的编辑器、一个新的增强版排错器、交互shell窗口、COM扩展和更多的有用特性。如图1-4就是运行在Windows上的PythonWin集成开发环境的屏幕截图。


《Python核心编程(第二版)》——1.5 运行Python

你可以在下面由Mark Hammond维护的网站中找到更多的关于PythonWin和Python针对Windowns的扩展(也被称为“win32all”)。

http://starship.python.net/crew/mhammond/win32/

http://sourceforge.net/projects/pywin32/

IDLE也有Windows平台版本,这是由Tcl/ Tk和Python/ Tkinter的跨平台性特点决定的,它看上去很像Unix平台下的版本,如图1-5所示。


《Python核心编程(第二版)》——1.5 运行Python

在Windows平台下,IDLE可以在Python编译器通常所在的目录C:Python2x下的子目录Libidlelib中找到。从DOS命令行窗口中启动IDLE,请调用idle.py。你也可以从Windows环境中调用idle.py,但是会启动一个不必要的DOS窗口。取而代之的方法是双击idle.pyw,以.pyw作为扩展名的文件不会通过打开DOS命令行窗口来运行脚本。事实上你可以在桌面上创建一个到C:Python2xLibidlelib\
idle.pyw的快捷方式,然后双击启动就可以了,简单吧!

1.5.4 其他的集成开发环境和执行环境

很多的软件开发专家事实上会选择在他们喜欢的文本编辑器中编写代码,比如vi(m) 或者emacs。除了这些和上面提到到的集成开发环境,还有大量的开源和商业的集成开发环境,下面是个简短的列表。
开源

  • IDLE(在Python 发行版中自带)

   http://python.org/idle/

  • PythonWin+Win32 Extensions   

   http://starship.python.net/crew/skippy/win32

  • IPython(增强的交互式Python)

   http://ipython.scipy.org

  • IDE Studio(IDLE以及更多)

   http://starship.python.net/crew/mike/Idle

  • Eclipse

   http://pydev.sf.net

   http://eclipse.org/
商业

  • WingWare 开发的WingIDE Python集成开发环境

  http://wingware.com/

  • ActiveState 开发的Komodo 集成开发环境

  http://activestate.com/Products/Komodo
通用集成开发环境列表

http://wiki.python.org/moin/IntegratedDevelopmentEnvironments

核心提示:运行本书中的代码实例

在本书中,你会发现很多的Python脚本样例,可以从本书的网站上下载。但是当你运行它们的时候,请记住这些代码是设计用来从命令行(DOS命令行窗口或Unix shell)或者集成开发环境执行的。如果你在使用Win32系统,双击Python程序会打开DOS窗口,但是在脚本执行完毕后就会关闭,所以你可能看不到输出结果。如果你遇到了这种情况,就直接打开DOS窗口,从命令行中运行相关的脚本,或者在集成开发环境中执行脚本。另外一种办法,就是在脚本的最后一行后面添加raw_input( )语句,这样就可以保持窗口开着,直到你按下回车键才关闭。
上一篇:编写Javascript类库(jQuery版) - 进阶者系列 - 学习者系列文章


下一篇:java项目管理工具maven使用初级