Python终端命令概要
用法:
python [选项] ... [-c 命令 | -m 模块 | 文件 | -] [参数] ...
选项和参数(及对应环境变量):
-b
:对 str(bytes实例)、str(bytearray实例) 及 bytes/bytearray 与 str 的比较操作发出警告(-bb:报错)
-B
:导入时不生成 .pyc 文件;等同于设置 PYTHONONDONTWRITEBYTECODE=x
-c
命令 :将字符串作为程序执行(终止选项列表)
-d
:开启解析器调试输出(仅限专家使用,需调试版构建);等同于设置 PYTHONDEBUG=x
-E
:忽略所有 PYTHON* 环境变量(如 PYTHONPATH)
-h
:打印此帮助信息并退出(--help 效果相同)
-i
:运行脚本后进入交互式检查模式;即使 stdin 不是终端也会强制提示符;等同于设置 PYTHONINSPECT=x
-I
:隔离模式(忽略用户环境,隐含 -E 和 -s 选项)
-m
模块 :将库模块作为脚本运行(终止选项列表)
-O
:移除 assert 和 debug相关语句;为 .pyc 文件添加 .opt-1 扩展名;等同于设置 PYTHONOPTIMIZE=x
-OO
:在 -O 优化基础上额外移除文档字符串;为 .pyc 文件添加 .opt-2 扩展名
-q
:交互式启动时不打印版本和版权信息
-s
:不将用户站点目录加入 sys.path;等同于设置 PYTHONNOUSERSITE
-S
:初始化时不自动执行 import site
-u
:强制 stdout 和 stderr 流无缓冲(对 stdin 无效);等同于设置 PYTHONUNBUFFERED=x
-v
:详细模式(追踪导入语句);等同于设置 PYTHONVERBOSE=x,可重复使用以增加详细程度
-V
:打印 Python 版本号并退出(--version 效果相同)
使用两次可打印更多构建信息
-W
参数 :警告控制;参数格式为 动作:消息类型:警告类别:模块:行号,也可通过 PYTHONWARNINGS=arg 设置
-x
:跳过源文件首行(允许使用非 Unix 格式的 #!cmd)
-X
选项 :设置实现专属选项。可用选项包括:
-X faulthandler:启用故障处理器
-X showrefcount:程序结束时或在交互式解释器中每条语句执行后
输出总引用计数和已用内存块数(仅调试版有效)
-X tracemalloc:使用 tracemalloc 模块追踪内存分配
默认仅存储追溯栈的最近一帧,可用 -X tracemalloc=N帧数 设置追溯深度
-X importtime:显示每个导入耗时(含模块名、累计时间和独立耗时)
注意多线程应用中输出可能不完整,典型用法:python3 -X importtime -c 'import asyncio'
-X dev:启用 CPython 开发模式(额外运行时检查)
开发模式效果包括:
* 添加默认警告过滤器(同 -W default)
* 安装内存分配器调试钩子(参见 PyMem_SetupDebugHooks() C 函数)
* 启用 faulthandler 模块在崩溃时输出堆栈追踪
* 启用 asyncio 调试模式
* 设置 sys.flags.dev_mode 为 True
* io.IOBase 析构函数记录 close() 异常
-X utf8:为操作系统接口启用 UTF-8 模式(覆盖本地化默认设置)
-X utf8=0 显式禁用 UTF-8 模式
-X pycache_prefix=路径:将 .pyc 文件写入指定目录的并行目录树
-X warn_default_encoding:对 'encoding=None' 情况启用编码警告
--check-hash-based-pycs always|default|never
:控制哈希型 .pyc 文件的失效验证方式
文件 :从脚本文件读取程序,从 stdin 读取程序(默认行为,若为终端则进入交互模式)
参数...:传递给程序的参数(存入 sys.argv[1:])
其他环境变量:
PYTHONSTARTUP
:交互式启动时执行的文件(默认无)
PYTHONPATH
:以分号分隔的目录列表,会前置到模块搜索路径(最终成为 sys.path)
PYTHONHOME
:替代 目录(或 ;<exec_prefix>),默认模块搜索路径使用 \python{major}{minor}
PYTHONPLATLIBDIR
:覆盖 sys.platlibdir 设置
PYTHONCASEOK
:在 import 语句中忽略大小写(Windows 特有)
PYTHONUTF8
:设为 1 时启用 UTF-8 模式
PYTHONIOENCODING
:设置 stdin/stdout/stderr 的编码[:错误处理方式]
PYTHONFAULTHANDLER
:致命错误时输出 Python 堆栈追踪
PYTHONHASHSEED
:设为 random 时使用随机值作为 str/bytes 的哈希种子,也可设为 [0,4294967295] 范围内的整数获得可预测哈希
PYTHONMALLOC
:设置 Python 内存分配器和/或安装调试钩子,使用 PYTHONMALLOC=debug 安装调试钩子
PYTHONCOERCECLOCALE
:设为 0 时禁用区域设置强制行为,设为 warn 时在 stderr 显示区域设置强制和兼容性警告
PYTHONBREAKPOINT
:设为 0 时禁用默认调试器,可设置为自定义调试器的可调用对象
PYTHONDEVMODE
:启用开发模式
PYTHONPYCACHEPREFIX
:字节码缓存(.pyc)文件的根目录
PYTHONWARNDEFAULTENCODING
:对 'encoding=None' 情况启用编码警告