Python指南--使用Python解释器

原创 2003年09月15日 09:26:00
 

2. 使用Python解释器

 
2.1
调用解释器

通常Python的解释器被安装在目标机器的 /usr/local/bin/python 目录下;把 /usr/local/bin 目录放进你的UNIX Shell 的搜索路径里,确保它可以通过输入


来启动。因为安装路径是可选的,所以也有可能安装在其它位置,你可以与安装Python的用户或系统管理员联系。(例如,/usr/local/python就是一个很常见的选择)

输入一个文件结束符(UNIX上是Ctrl+DWindwos上是Ctrl+Z)解释器会以0值退出(就是说,没有什么错误,正常退出--译者)。如果这没有起作用,你可以输入以下命令退出:import sys; sys.exit()

解释器的行编辑功能并不很复杂。装在Unix上的解释器可能会有GNU readline 库支持,这样就可以额外得到精巧的交互编辑和历史记录功能。可能检查命令行编辑器支持能力最方便的方式是在主提示符下输入Ctrl+P。如果有嘟嘟声(计算机扬声器),说明你可以使用命令行编辑功能,从附录 A 可以查到快捷键的介绍。如果什么也没有发声,或者P显示了出来,说明命令行编辑功能不可用,你只有用退格键删掉输入的命令了。

解释器的操作有些像Unix Shell:使用终端设备做为标准输入来调用它时,解释器交互的解读和执行命令,通过文件名参数或以文件做为标准输入设备时,它从文件中解读并执行脚本

启动解释器的第三个方法是“python -c command [arg] ...,这种方法可以在命令行中直接执行语句,等同于Shell-c选项。因为Python语句通常会包括空格之类的特殊字符,所以最好把整个语句用双引号包起来。

注意“python file和“python 是有区别的。对于后一种情况,程序中类似于调用 input() raw_input()这样的输入请求,来自于确定的文件。因为在解析器开始执行之前,文件已经完全读入,所以程序指向文件尾。在前一种情况(这通常是你需要的)它们从来自于任何联接到Python解释器的标准输入,无论它们是文件还是其它设备。

使用脚本文件时,经常会运行脚本然后进入交互模式。这也可以通过在脚本之前加上-i参数来实现。(如果脚本来自标准输入,就不能这样运行,与前一段提到的原因一样。)


2.1.1 参数传递

调用解释器时,脚本名和附加参数之传入一个名为sys.argv的字符串列表。没有脚本和参数时,它至少也有一个元素:sys.argv[0]此时为空字符串。脚本名指定为‘ - ’(表示标准输入)时,sys.argv[0]被设置为‘ - ’,使用 -c 指令时,sys.argv[0]被设定为‘ -c ’-c 命令之后的参数不会被 Python 解释器的选项处理机制所截获,而是留在sys.argv 中,供脚本命令操作。


2.1.2 交互模式

tty读取命令时,我们称解释器工作于交互模式。这种模式下它根据主提示符来执行,主提示符通常标识为三个大于号(“>>> ”);继续的部分被称为从属提示符,由三个点标识(“... )。在第一行之前,解释器打印欢迎信息、版本号和授权提示:




输入多行结构时需要从属提示符了,例如,下面这个 if 语句:




 
2.2
解释器及其环境


2.2.1 错误处理

有错误发生时,解释器打印一个错误信息和栈跟踪(监视)器?。交互模式下,它返回主提示符,如果从文件输入执行,它在打印栈跟踪器后以非零状态退出。(异常可以由try语句中的except子句来控制,这样就不会出现上文中的错误信息)有一些非常致命的错误会导致非零状态下退出,这由通常由内部矛盾和内存溢出造成。所有的错误信息都写入标准错误流;命令中执行的普通输出写入标准输出。

在主提示符或附属提示符输入中断符(通常是Control-C or DEL)就会取消当前输入,回到主命令行。2.1执行命令时输入一个中断符会抛出一个 KeyboardInterrupt 异常,它可以被try截获。


2.2.2 执行Python脚本

BSD系统中,Python脚本可以像Shell脚本那样直接执行,只要在脚本文件开头写一行命令,指定文件和模式:


(将用户路径通知解释器) “#!”必须是文件的前两个字符,在某些平台上,第一行必须以Unix风格的行结束符(“/n)结束,不能用Mac(“/r)或Windows(“/r/n)的结束符。注意,“#”Python中是行注释的起始符。

脚本可以通过 chmod 命令指定执行模式和许可权。


2.2.3 源程序编码

Python的源文件可以通过编码使用 ASCII 以外的字符集。 最好的做法是在 #! 行后面用一个特殊的注释行来定义字符集。


根据这个声明,Python会将文件中的字符尽可能的从指定的编码转为Unicode,在本例中,这个字符集是 iso-8859-1 。在 Python 库参考手册 中可以找到可用的编码列表(根据我的实验,中文似乎只能用cp-936utf-8,不直接支持GBGBKGB-18030ISO-10646--译者注)。

如果你的文件编辑器支持UTF-8格式,并且可以保存UTF-8标记(aka BOM - Byte Order Mark),你可以用这个来代替编码声明(看来至少Jext还不支持这样做,而Vim,我还没找到它的编码设置在哪里,还是老老实实的用注释行指定源代码的编码吧--译者注)。IDLE可以通过设定Options/General/Default Source Encoding/UTF-8 来支持它。需要注意的是旧版Python不支持这个标记(Python 2.2或更早的版本),也同样不能使操作系统支持#!文件。

使用UTF-8内码(无论是用标记还是编码声明),我们可以在字符串和注释中使用世界上的大部分语言。标识符中不能使用非 ASCII 字符集。为了正确显示所有的字符,你一定要在编辑器中将文件保存为UTF-8格式,而且要使用支持文件中所有字符的字体。


2.2.4 交互式环境的启动文件

使用Python解释器的时候,我们可能需要在每次解释器启动时执行一些命令。你可以在一个文件中包含你想要执行的命令,设定一个名为PYTHONSTARTUP 的环境变量来指定这个文件。这类似于Unix shell.profile文件。

这个文件在交互会话期是只读的,当Python从脚本中解读文件或以终端做为外部命令源时则不会如此(尽管它们的行为很像是处在交互会话期。)它与解释器执行的命令处在同一个命名空间,所以由它定义或引用的一切可以在解释器中不受限制的使用。你也可以在这个文件中改变sys.ps1sys.ps2指令。

如果你想要在当前目录中执行附加的启动文件,你可以在全局启动文件中加入类似以下的代码:“if os.path.isfile('.pythonrc.py'): execfile('.pythonrc.py')” 如果你想要在某个脚本中使用启动文件,必须要在脚本中写入这样的语句:



    



脚注

... 注:2.1
GNU readline包的一个错误可能会造成无法正常工作。

介绍几款Python解释器

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。 由于整个Python语言从规范到解释器都是开源...
  • Angel_YJ
  • Angel_YJ
  • 2015年12月17日 16:41
  • 9695

安装python解释器

http://www.cnblogs.com/halfacre/archive/2012/07/22/2603848.html   安装python解释器 安装PyDev: ...
  • u013571243
  • u013571243
  • 2015年10月10日 08:21
  • 4925

最全Pycharm教程(4)——有关Python解释器的相关配置

1、准备工作   (1)Pycharm版本为3.4或者更高。   (2)电脑上至少已经安装了一个Python解释器。   (3)如果你希望配置一个远程解释器,则需要服务器的相关支持。   2、...
  • u013088062
  • u013088062
  • 2015年12月01日 21:16
  • 50542

python学习之指定脚本解释器

python脚本解释器 在脚本中经常看到开头有#!/usr/bin/xxx这样一行,这个就是脚本解释器的指定语法,意思是使用/usr/bin/xxx来执行下边的脚本代码 详解 在python中,可...
  • aguda_king
  • aguda_king
  • 2017年05月31日 23:05
  • 895

[Python源码学习] 之 Python解释器

源码结构 下载Python的源码,解压,即可看到源码的目录结构。 奇怪:Python2.7.2根目录下的 README 文件中有 各个目录的说明,在 Python3.2.1根目录下的REA...
  • dbzhang800
  • dbzhang800
  • 2011年08月13日 01:08
  • 9839

[python3教程]第二章.使用解释器

2 使用PYTHON解释器 2.1 调用解释器 在UNIX系统中Python的解释器一般安装在/usr/local/bin/python3.6,在shell中进入/usr/local/bin然后输...
  • u011043775
  • u011043775
  • 2017年01月08日 10:31
  • 654

【Python】Python解释器的几种实现版本

Visualization 模块中部分代码存在 bug,以下修改来自Open Cascade 官方论坛中有人做的patch,及自己修改的(少部分): 1: TKV3d.dll1.1File:Visua...
  • robinjwong
  • robinjwong
  • 2009年06月25日 18:05
  • 2204

Python环境变量PYTHONPATH设置和easy_install简单使用

1.把自己编写的python模块添加到PYTHONPATH上 要想让python解释器找到自己编写的模块,则该模块必须PYTHONPATH上,否则在导入该模块时会出现找不到该模块的错误,因此必须把所...
  • fyh2003
  • fyh2003
  • 2011年09月30日 15:20
  • 72673

python中环境变量,默认路径设置

转载自:http://www.tuicool.com/articles/EB3miqr sys模块包含了与python解释器和它的环境有关的函数,这个你可以通过dir(sys)来查看他里...
  • xiaojiajia007
  • xiaojiajia007
  • 2017年02月27日 18:51
  • 2367

python3 查看解释器和包安装路径

[python] view plain copy import sys      print (sys.path)
  • yilovexing
  • yilovexing
  • 2017年06月02日 17:02
  • 2080
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python指南--使用Python解释器
举报原因:
原因补充:

(最多只允许输入30个字)