Python解释器本身支持的命令行参数

python --help用于查看Python解释器本身支持的命令行参数。注意,它与python main.py --help不同:前者查看Python运行环境的参数,后者通常查看脚本通过argparse定义的参数。


1. 查看帮助信息

python --help

常见输出如下(不同Python版本可能略有差异):

usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...

Options and arguments:
-b     : issue warnings about str(bytes_instance)
-B     : don't write .pyc files on import
-c cmd : program passed in as string
-d     : debug output from parser
-E     : ignore environment variables
-h     : print this help message and exit
-i     : inspect interactively after running script
-I     : isolated mode
-m mod : run library module as a script
-O     : remove assert and __debug__-dependent statements
-OO    : discard docstrings in addition to -O
-q     : don't print version and copyright messages
-s     : don't add user site directory to sys.path
-S     : don't imply 'import site' on initialization
-u     : unbuffered binary stdout and stderr
-v     : verbose (trace import statements)
-V     : print Python version number and exit
-W arg : warning control
-X opt : set implementation-specific option
--help : print this help message and exit
--version : print Python version number and exit

2. 常用参数详解

运行Python代码

参数 作用 示例
-c 直接执行字符串形式的Python代码 python -c "print(1+2)"
-m 将模块作为脚本运行 python -m http.server 8000
- 从标准输入读取Python代码 python -
-i 脚本运行结束后进入交互式解释器 python -i main.py

-c和-m的区别:

# 直接执行一段代码
python -c "import sys; print(sys.version)"

# 运行标准库模块
python -m http.server 8000

# 运行指定文件
python main.py

调试与开发

参数 作用 示例
-v 显示模块导入的详细信息 python -v main.py
-O 启用优化模式,移除assert语句 python -O main.py
-OO 在-O基础上移除文档字符串 python -OO main.py
-X dev 启用开发模式,提供额外的运行时检查和警告 python -X dev main.py
-X tracemalloc 跟踪Python内存分配 python -X tracemalloc main.py

注意:-O会影响assert的执行,因此不应将assert用作必须始终执行的业务校验。

环境与输出控制

参数 作用 示例
-E 忽略PYTHON*环境变量 python -E main.py
-I 启用隔离模式,减少环境变量和用户配置对运行的影响 python -I main.py
-s 不将用户级site-packages目录加入模块搜索路径 python -s main.py
-S 不自动导入site模块 python -S main.py
-B 不写入.pyc字节码缓存文件 python -B main.py
-u 让标准输出和标准错误流不进行缓冲 python -u main.py
-q 启动交互式解释器时不显示版本和版权提示 python -q

例如,在Docker容器或日志实时输出场景中,经常使用:

python -u main.py

这样print()等标准输出内容通常能更及时地被日志系统读取。

版本与警告

参数 作用 示例
-V或--version 查看Python版本 python --version
-W 配置警告过滤规则 python -W ignore main.py
-b 对部分bytes与字符串之间的可疑比较或操作发出警告 python -b main.py

3. 最重要的命令结构

python [解释器参数] 脚本文件 [脚本参数]

例如:

python -u -O train.py --lr 0.001 --epochs 20

这里包含两类参数:

  • 解释器参数:-u、-O,由Python解释器处理。
  • 脚本参数:--lr 0.001、--epochs 20,由train.py中的参数解析逻辑处理。
python -u main.py --name Alice

其中-u控制解释器的输出缓冲行为,而--name Alice由argparse解析。