安装与运行
Python 解释器在不同平台上的安装路径各异。Unix 系统通常将 Python 3.12 安装在 /usr/local/bin/python3.12,Windows 用户若从 Microsoft Store 安装,可直接使用 python3.12 命令;若安装了 py.exe launcher,则可用 py 命令启动。无论哪种方式,核心目标都是让 python 命令能在终端中被找到。
安装与验证
安装完成后,在终端输入版本检查命令确认环境就绪:
$ python3.12 --version
Python 3.12.13
若提示命令未找到,说明解释器路径未加入系统 PATH。Unix 用户可将安装目录加入 shell 的搜索路径;Windows 用户可勾选安装向导中的 "Add Python to PATH",或手动在环境变量中追加安装目录。验证失败的典型表现是:
$ python3.12 --version
bash: python3.12: command not found
启动与退出解释器
直接输入 python3.12 或 py 即可进入交互式解释器。启动时会显示版本信息、编译器信息和版权声明,随后出现主提示符 >>>:
$ python3.12
Python 3.12.13 (main, Oct 1 2025, 12:34:56) [GCC 12.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
退出解释器有三种方式。Unix 系统按 Ctrl-D 发送文件结束符;Windows 系统按 Ctrl-Z 后回车;或者在提示符下输入 quit():
>>> quit()
$ # 回到系统 shell,退出状态码为 0
如果 quit() 也无法退出(极少数环境限制),还可以用 raise SystemExit 强制终止解释器进程。
运行脚本的四种方式
方式一:直接执行脚本文件
将代码写入 .py 文件,把文件名作为参数传给解释器。这是最常见的运行方式:
# hello.py
print("Hello, Python 3.12")
$ python3.12 hello.py
Hello, Python 3.12
方式二:-c 执行单行命令
python -c command 将字符串当作 Python 语句执行,效果类似 shell 的 -c 选项。由于 Python 语句常包含空格,建议用引号包裹整个命令:
$ python3.12 -c "import sys; print(sys.version)"
3.12.13 (main, Oct 1 2025, 12:34:56) [GCC 12.0]
若忘记加引号,shell 会把空格当作参数分隔符,导致解析失败:
$ python3.12 -c import sys; print(sys.version)
File "<string>", line 1
import
^
SyntaxError: invalid syntax
方式三:-m 执行模块
python -m module 将模块当作脚本执行,等效于写出模块的完整路径。这种方式常用于运行标准库工具,如 http.server、venv、pip:
$ python3.12 -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 ...
$ python3.12 -m venv myenv # 创建虚拟环境
方式四:-i 交互式运行脚本
在脚本参数前加 -i,脚本执行完毕后不会退出,而是进入交互模式,保留脚本执行后的全局命名空间。这对调试极有用:
# config.py
threshold = 100
data = [23, 56, 120, 89]
$ python3.12 -i config.py
>>> threshold # 脚本中的变量仍然可用
100
>>> [x for x in data if x > threshold]
[120]
命令行参数与 sys.argv
解释器把脚本名和后续参数转化为字符串列表,存入 sys.argv。该列表至少有一个元素;不同启动方式下,sys.argv[0] 的值也不同:
# args_demo.py
import sys
print(f"参数列表: {sys.argv}")
print(f"脚本名/命令: {sys.argv[0]}")
$ python3.12 args_demo.py a b c
参数列表: ['args_demo.py', 'a', 'b', 'c']
脚本名/命令: args_demo.py
$ python3.12 -c "import sys; print(sys.argv)" a b
['-c', 'a', 'b']
$ echo "print(1)" | python3.12 - a b
['-', 'a', 'b']
$ python3.12 -m http.server 8000
# sys.argv[0] 为 '/usr/lib/python3.12/http/server.py'
注意:-c 或 -m 之后的选项不会被解释器处理,而是原样留在 sys.argv 中,由用户代码自行解析。这意味着 python -m myapp --debug 中的 --debug 会完整传递给 myapp。
交互模式与提示符
当解释器与终端(tty)关联时,进入交互模式。主提示符 >>> 等待输入下一条语句;输入多行结构(如 if、for、def)时,解释器显示次要提示符 ...,提示继续输入:
>>> x = 10
>>> if x > 5:
... print("大于 5")
... print("继续缩进")
...
大于 5
继续缩进
多行输入必须以空行结束,告诉解析器代码块已完结。如果忘记输入空行,解释器会持续显示 ...,等待更多内容:
>>> def add(a, b):
... return a + b
... # 这里按回车,空行表示结束
>>> add(2, 3)
5
源文件字符编码
Python 3.12 源码文件默认采用 UTF-8 编码,支持世界上大多数语言的字符直接出现在字符串、注释甚至标识符中。但为保证代码可移植,标准库仅使用 ASCII 字符作为变量名和函数名。
若必须使用其他编码,需在文件第一行声明:
# -*- coding: cp1252 -*-
# 此文件使用 Windows-1252 编码
message = "Café" # 非 ASCII 字符需编辑器支持该编码
如果文件以 shebang 行开头,编码声明必须放在第二行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
print("编码声明在 shebang 之后")
编码声明错误或不匹配会导致 SyntaxError。例如,文件实际以 UTF-8 保存却声明为 cp1252,或编辑器以 GBK 保存却未声明,中文字符就会乱码或触发解码错误:
# 若编辑器以 GBK 保存且未声明编码
# 以下代码在 UTF-8 默认环境下可能报错
# SyntaxError: non-utf-8 code starting with '\xb5'
行编辑功能检测
在支持 GNU Readline 的系统上,解释器提供交互式编辑、历史替换和代码补全。检测是否支持的最快方法是:在首次出现 >>> 时按 Ctrl-P。如果听到提示音,说明支持行编辑;如果无反应或回显 ^P,则不支持,只能用退格键删除字符。
>>> # 按 Ctrl-P
# 若听到"哔"声,支持行编辑和历史记录
# 若显示 ^P,不支持
行编辑功能让交互体验大幅提升:按上箭头可调出历史命令,按 Tab 可补全变量名和模块名,这些特性在后续章节会深入介绍。