Python安装和用法(一):命令行和环境

 安装Python后,在命令行启动Python(windows环境下请参考 Python环境安装、测试)。
CPython解释器扫描命令行和各种设定的环境。CPython的实现细节:各种命令行实现细节可能不同,更多关于此问题的资源请访问其它实现.

命令行

 当你调用python(py)命令时,应该制定以下任何这些选项:

python [-bBdEhiIOqsSuvVWx?] [-c command | -m module-name | script | - ] [args]

 比如执行某个python脚本:

python myScript.py

 查看python版本:

python -V

界面选项

 Python解释器的界面跟UNIX shell界面很像,但是提供了额外的调用方式:
1. 使用标准输入连接tty设备时,解释器提示指令并执行它们直到EOF(文件结尾标识符,在UNIX环境下你可以使用Ctrl + D, 在windows环境下使用Ctrl + Z + Enter
2. 当调用一个文件名参数或将一个文件作为标准输入时,解释器会从该文件中读取并执行脚本
3. 当调用一个目录名称参数时,解释器会从该目录中读取并执行一个适当的命名脚本
4. 当调用-c 命令时,解释器将给定的python语句作为命令执行。这里的命令可能包含用换行符分隔开的多个语句,空格符在Python中是很重要的
5. 当调用-m 模块名时,给定模块位于Python模块路径和脚本执行

 在非交互模式中,在执行整个输入之前,将对其进行解析。
 在解释器的界面终端,所有可选项的参数列表最终归于sys.argv —-注意第一个参数,下标索引是0(sys.argv[0]),代表程序来源的字符串形式。

-c <命令> 

    在命令行中执行Python代码。命令可以是一个或者换行符分割开来的多个Python语句,要求是正常的模块代码形式。 

    使用这个选项,sys.argv的第一个元素则为 -c ,并且当前目录将会添加到sys.path(允许目录中的模块通过inport作为顶层模块)的开头。
-m <模块名> 

    在sys.path中查找模块名,并作为__main__模块执行模块内容 

    由于参数模块名,所以你不能指定文件扩展名(.py). 模块名应该是有效的,但是也不强制要求。 

    包名称或者命名空间包都可以作为模块参数,如果包名作为参数,解释器将会把<pkg>.__main__作为主模块执行。这种方式应该慎用,另外还有将目录、压缩文件作为参数的方式。 
注意:此选项不能用于内置模块和用C写的扩展模块,因为它们没有Python模块文件. 不管怎样,它仍然可以用于预编译的模块,即使源文件不可用 

    使用这个选项的时候,sys.argv 的第一个元素 “-m” 会作为模块的第一个元素,即使该模块是在本地。跟 -c 一样,该目录将会添加到sys.path的开头。 

    很多标准模块均包含调用它们自己作为脚本执行的代码。以下是一个 timeit 的模块示例: 

        python -mtimeit -s ‘setup here’ ‘benchmarked code here’ 

        python -mtimeit -h # for details 

    版本变动: 

        3.1—-支持包名城 

        3.4—-支持命名空间包
.py). 模块名应该是有效的,但是也不强制要求。 

    包名称或者命名空间包都可以作为模块参数,如果包名作为参数,解释器将会把<pkg>.__main__作为主模块执行。这种方式应该慎用,另外还有将目录、压缩文件作为参数的方式。
-

通用选项


-?
-h
–help
输出所有的命令行选项简单说明



-V
–version
输出Python版本信息


混合选项

* 用不到的选项*


-J
为Jython预留的选项


环境变量

 环境变量影响Python的行为。通过命令行重写环境变量会发生冲突.

环境变量名

说明

PYTHONHOME

指定Python根目录,用于指定Python标准库的文件位置

PYTHONPATH

模块文件的默认搜索路径

Debug-mode 变量

 debug模式变量,当你使用选项--with-pydebug时就有用了。

变量名

说明

PYTHONTHREADDEBUG

如果设置了,则会打印线程的debug信息

PYTHONDUMPREFS

如果设置了,在解释器关闭后会转储对象的引用计数

PYTHONMALLOCSTATS

如果设置了,每次创建对象、销毁对象都会打印内存分配的统计情况