命令行手册

Man » python3 手册在线 - python3 手册页的详细在线文档

🌍
python - 一种解释型、交互式、面向对象的编程语言

概要

python [ -B ] [ -b ] [ -d ] [ -E ] [ -h ] [ -i ] [ -I ]
[ -m 模块名 ] [ -q ] [ -R ] [ -O ] [ -OO ] [ -P ] [ -s ] [ -S ] [ -u ]
[ -v ] [ -V ] [ -W 参数 ] [ -x ] [ -X 选项 ] [ -? ]
[ --check-hash-based-pycs 默认值 | 始终 | 从不 ]
[ --help ] [ --help-env ] [ --help-xoptions ] [ --help-all ]
[ -c 命令 | 脚本 | - ] [ 参数 ]

描述

Python 是一种解释型、交互式、面向对象的编程语言,它将卓越的强大功能与非常清晰的语法相结合。有关 Python 编程的介绍,请参阅 Python 教程。Python 库参考文档记录了内置的和标准类型、常量、函数和模块。最后,Python 参考手册详细描述了核心语言的语法和语义。(这些文档可以通过以下 INTERNET 资源找到;它们也可以安装在您的系统上。)

Python 的基本功能可以通过您用 C 或 C++ 编写的模块进行扩展。在大多数系统中,这些模块可以动态加载。Python 也可以作为现有应用程序的扩展语言进行调整。请参阅内部文档以获取提示。

可以通过运行 pydoc 程序来查看已安装的 Python 模块和软件包的文档。

命令行选项

-B 不在导入时写入 .pyc 文件。另请参见 PYTHONDONTWRITEBYTECODE。

-b 发出关于 str(bytes_instance)、str(bytearray_instance) 以及将 bytes/bytearray 与 str 进行比较的警告。(-bb:发出错误)

-c 命令

指定要执行的命令(参见下一部分)。这将终止选项列表(后面的选项将作为参数传递给该命令)。

--check-hash-based-pycs 模式

配置 Python 评估基于哈希的 .pyc 文件是否为最新版本的方式。

-d 启用解析器调试输出(仅供专家使用,具体取决于编译选项)。

-E 忽略修改解释器行为的环境变量,例如 PYTHONPATH 和 PYTHONHOME。

-h, -?, --help

打印解释器可执行文件的用法并退出。

--help-env

打印有关 Python 特定环境变量的帮助并退出。

--help-xoptions

打印有关特定于实现的 -X 选项的帮助并退出。

--help-all

打印完整的用法信息并退出。

-i 当将脚本作为第一个参数传递或使用 -c 选项时,在执行脚本或命令后进入交互模式。它不会读取 $PYTHONSTARTUP 文件。这对于检查全局变量或在脚本引发异常时检查堆栈跟踪很有用。

-I     以隔离模式运行 Python。 这同时意味着 -E、-P 和 -s。 在隔离模式下,`sys.path` 不包含脚本的目录或用户 site-packages 目录。 所有 `PYTHON*` 环境变量也将被忽略。 此外,可能会施加进一步的限制,以防止用户注入恶意代码。

-m module-name
在 `sys.path` 中搜索指定的模块,并将其对应的 .py 文件作为脚本运行。 这将终止选项列表(后续选项将作为参数传递给模块)。

-O     删除断言语句和任何依赖于 `__debug__` 值的代码;将编译(字节码)文件的文件名进行修改,在 .pyc 扩展名之前添加 .opt-1。

-OO    执行 -O,并同时删除文档字符串;将编译(字节码)文件的文件名进行修改,在 .pyc 扩展名之前添加 .opt-2。

-P     不要自动将潜在的不安全路径添加到 `sys.path` 中,例如当前目录、脚本的目录或空字符串。 另请参见 `PYTHONSAFEPATH` 环境变量。

-q     不打印版本和版权消息。 这些消息在非交互模式下也会被抑制。

-R     启用哈希随机化。 此选项仅在 `PYTHONHASHSEED` 环境变量设置为 0 时才有效,因为哈希随机化默认已启用。

-s     不要将用户 site 目录添加到 `sys.path` 中。

-S     禁用导入 `site` 模块以及 `site` 模块所执行的对 `sys.path` 的依赖于站点的操作。 此外,如果稍后明确导入 `site`,也将禁用这些操作。

-u     强制 `stdout` 和 `stderr` 流变为非缓冲状态。 此选项对 `stdin` 流没有影响。

-v     每次初始化模块时,打印一条消息,显示模块的加载位置(文件名或内置模块)。 如果给出两次,则打印一条消息,显示在搜索模块时检查的每个文件。 此外,还提供有关退出时模块清理的信息。

-V ,  --version
打印 Python 可执行文件的版本号并退出。 如果给出两次,则打印更多关于构建的信息。

-W argument
警告控制。 Python 的警告机制默认将警告消息打印到 `sys.stderr`。

最简单的设置是对所有警告消息(即使是默认情况下被忽略的警告)应用特定的操作:

-Wdefault  # 每个调用位置警告一次
-Werror    # 转换为异常
-Walways   # 每次都警告
-Wall      # 与 -Walways 相同
-Wmodule   # 每个调用模块警告一次
-Wonce     # 每个 Python 进程警告一次
-Wignore   # 永不警告

操作名称可以根据需要进行缩写,解释器将解析它们以应用相应的操作名称。 例如,-Wi 与 -Wignore 相同。

完整参数形式为:action:message:category:module:lineno

空字段匹配所有值;可以省略尾部的空字段。例如,-W ignore::DeprecationWarning 忽略所有 DeprecationWarning 类型的警告。

^ ction 字段的含义如上所述,但仅适用于与剩余字段匹配的警告。

^ essage 字段必须与完整的打印警告消息匹配;此匹配不区分大小写。

^ ategory 字段匹配警告类别(例如,“DeprecationWarning”)。这必须是一个类名;匹配测试实际的警告类别是否是指定警告类别的子类。

^ odule 字段匹配(完全限定的)模块名称;此匹配区分大小写。

^ ineno 字段匹配行号,其中 0 匹配所有行号,因此等效于省略行号。

可以提供多个 -W 选项;当一个警告匹配多个选项时,执行最后一个匹配选项的 action。无效的 -W 选项将被忽略(但是,当第一个警告发出时,会打印一条关于无效选项的警告消息)。

也可以使用 PYTHONWARNINGS 环境变量以及 Python 程序中的 warnings 模块来控制警告。例如,可以使用 warnings.filterwarnings() 函数对警告消息使用正则表达式。

^ X 选项 设置特定于实现的选项。以下选项可用:

-X cpu_count=N: 覆盖 `os.cpu_count()` 的返回值;
-X cpu_count=default: 取消覆盖;同时使用 `PYTHON_CPU_COUNT`。

-X dev: 启用 CPython 的“开发模式”,引入额外的运行时检查,这些检查默认情况下过于昂贵,无法启用。如果代码正确,它不会比默认设置更冗长:仅在检测到问题时才会发出新的警告。开发模式的效果:
* 添加默认警告过滤器,如 `-W default`
* 在内存分配器上安装调试钩子:请参阅 C 函数 `PyMem_SetupDebugHooks()`
* 启用 `faulthandler` 模块,以便在崩溃时转储 Python 堆栈跟踪
* 启用 `asyncio` 调试模式
* 将 `sys.flags` 的 `dev_mode` 属性设置为 `True`
* `io.IOBase` 析构函数记录 `close()` 异常

-X importtime: 显示每个导入需要多长时间。它显示模块名称、累计时间(包括嵌套导入)和自时间(不包括嵌套导入)。请注意,在多线程应用程序中,其输出可能会出现问题。典型的用法是
`python3 -X importtime -c 'import asyncio'`

-X faulthandler: 启用 `faulthandler`

-X frozen_modules=[on|off]: 是否使用冻结模块。
默认值为“on”(或者,如果您运行的是本地构建,则为“off”)。

-X gil=[0|1]: 启用 (1) 或禁用 (0) GIL;同时使用 `PYTHON_GIL`。
仅在配置了 `--disable-gil` 的构建中可用。

-X int_max_str_digits=number: 限制 int<->str 转换的大小。
这有助于避免在解析不受信任的数据时发生拒绝服务攻击。
默认值为 `sys.int_info.default_max_str_digits`。0 禁用。

-X no_debug_ranges: 禁用包含将附加位置信息(行尾、起始列偏移和行尾列偏移)映射到代码对象中每个指令的表。当需要更小的代码对象和 pyc 文件时,以及在解释器显示回溯时抑制额外的视觉位置指示器时,此选项很有用。

-X perf: 支持 Linux 的“perf”分析器;同时 PYTHONPERFSUPPORT=1

-X perf_jit: 支持带有 DWARF 支持的 Linux 的“perf”分析器;同时 PYTHON_PERF_JIT_SUPPORT=1

-X presite=MOD: 在 site 之前导入此模块;同时 PYTHON_PRESITE。这仅适用于调试版本。

-X pycache_prefix=PATH: 启用将 .pyc 文件写入到以给定目录为根目录的并行树中,而不是写入代码树中。

-X showrefcount: 在程序完成或在交互式解释器中执行每个语句后,输出总引用计数和使用的内存块数。这仅适用于调试版本。

-X tracemalloc: 使用 tracemalloc 模块开始跟踪 Python 内存分配。默认情况下,回溯中仅存储最新的帧。使用 -X tracemalloc=NFRAME 开始跟踪,回溯限制为 NFRAME 帧。

-X utf8: 启用操作系统接口的 UTF-8 模式,覆盖默认的区域设置感知模式。-X utf8=0 显式禁用 UTF-8 模式(即使它通常会自动激活)。有关更多详细信息,请参阅 PYTHONUTF8。

-X warn_default_encoding: 启用对“encoding=None”的 opt-in EncodingWarning。

-x 跳过源文件的第一行。这仅用于 DOS 特定的方法。警告:错误消息中的行号将偏移 1!

解释器接口

解释器接口类似于 UNIX shell:当通过标准输入连接到 tty 设备时,它会提示命令并执行这些命令,直到读取到 EOF;当使用文件名参数或将文件作为标准输入调用时,它会从该文件中读取并执行脚本;当使用 -c 命令调用时,它会执行作为命令给定的 Python 语句。命令可以包含多个语句,这些语句用换行符分隔。在 Python 语句中,前导空格很重要!在非交互模式下,整个输入在执行之前都会被解析。

如果可用,脚本名称和后续的附加参数将作为 Python 变量 sys.argv 传递给脚本,sys.argv 是一个字符串列表(首先必须导入 sys 才能访问它)。如果没有指定脚本名称,则 sys.argv[0] 是一个空字符串;如果使用 -c,则 sys.argv[0] 包含字符串“-c”。请注意,Python 解释器本身解释的选项不会放在 sys.argv 中。

在交互模式下,主提示符为“>>>”;第二个提示符(在命令未完成时出现)为“...”提示符可以通过将值赋给 sys.ps1 或 sys.ps2 来更改。解释器在提示符处读取到 EOF 时退出。当发生未处理的异常时,将打印堆栈跟踪,并且控制权返回到主提示符;在非交互模式下,解释器在打印堆栈跟踪后退出。中断信号会引发 KeyboardInterrupt 异常;其他 UNIX 信号不会被捕获(除了 SIGPIPE 有时会被忽略,以支持 IOError 异常)。错误消息将写入 stderr。


文件和目录

这些内容可能因本地安装约定而异;${prefix} 和 ${exec_prefix} 是与安装相关的,应像处理 GNU 软件一样进行解释;它们可能相同。在 Debian GNU/{Hurd,Linux} 上,两者的默认值都是 /usr。

${exec_prefix}/bin/python

推荐的解释器位置。

${prefix}/lib/python<version>
${exec_prefix}/lib/python<version>

推荐的标准模块目录位置。

${prefix}/include/python<version>
${exec_prefix}/include/python<version>

推荐的目录位置,其中包含用于开发 Python 扩展和嵌入解释器所需的头文件。

环境变量

PYTHONASYNCIODEBUG

如果将此环境变量设置为非空字符串,则启用 asyncio 模块的调试模式。

PYTHON_BASIC_REPL

如果将此变量设置为任何值,则解释器将不会尝试加载基于 Python 的 REPL,该 REPL 需要 curses 和 readline,而是将使用传统的基于解析器的 REPL。

PYTHONBREAKPOINT

如果将此环境变量设置为 0,则会禁用默认调试器。可以将其设置为所需的调试器可调用对象。

PYTHONCOERCECLOCALE

如果设置为 0,则导致主 Python 命令行应用程序跳过将基于 ASCII 的旧版 C 和 POSIX 语言环境强制转换为更强大的基于 UTF-8 的替代语言环境。

PYTHON_COLORS

如果将此变量设置为 1,则解释器将对各种类型的输出进行着色。将其设置为 0 会禁用此行为。

PYTHON_CPU_COUNT

如果将此变量设置为正整数,则会覆盖 os.cpu_count 和 os.process_cpu_count 的返回值。

请参阅 -X cpu_count 选项。

PYTHONDEBUG

如果将其设置为非空字符串,则等效于指定 -d 选项。如果设置为整数,则等效于多次指定 -d。

PYTHONEXECUTABLE

如果设置了此环境变量,则 sys.argv[0] 将设置为其值,而不是通过 C 运行时获得的值。仅适用于 Mac OS X。

PYTHONFAULTHANDLER

如果将此环境变量设置为非空字符串,则在启动时调用 faulthandler.enable():安装处理 SIGSEGV、SIGFPE、SIGABRT、SIGBUS 和 SIGILL 信号的处理程序,以转储 Python 堆栈跟踪。

这等效于 -X faulthandler 选项。


PYTHON_FROZEN_MODULES

如果此变量设置为 on 或 off,则它决定了冻结模块是否被导入机制忽略。值为 on 表示它们将被导入,off 表示它们将被忽略。默认情况下,对于非调试版本(正常情况),其值为 on,对于调试版本,其值为 off。

请参阅 -X frozen_modules 选项。

PYTHON_GIL

如果此变量设置为 1,则全局解释器锁 (GIL) 将被强制启用。将其设置为 0 会强制禁用 GIL。仅在配置了 --disable-gil 的构建中可用。

这等效于 -X gil 选项。

PYTHON_HISTORY

此环境变量可用于设置历史文件位置(在 Unix 上,默认情况下为 ~/.python_history)。

PYTHONNODEBUGRANGES

如果设置了此变量,则会禁用将额外的位置信息(行尾、起始列偏移和行尾列偏移)映射到代码对象中每个指令的表。这在需要较小的代码对象和 .pyc 文件时很有用,并且可以抑制解释器在显示回溯时显示的额外视觉位置指示器。

PYTHONDONTWRITEBYTECODE

如果设置为非空字符串,则等效于指定 -B 选项(不尝试写入 .pyc 文件)。

PYTHONDEVMODE

如果此环境变量设置为非空字符串,则启用 Python 的“开发模式”,引入额外的运行时检查,这些检查在默认情况下过于昂贵,因此无法启用。

这等效于 -X dev 选项。

PYTHONHASHSEED

如果此变量设置为“random”,则使用随机值来设置 str 和 bytes 对象的哈希种子。

如果 PYTHONHASHSEED 设置为整数值,则将其用作生成哈希值(包括受哈希随机化影响的类型)的固定种子。其目的是允许可重复的哈希,例如用于解释器本身的自检,或允许一组 Python 进程共享哈希值。

整数必须是 [0,4294967295] 范围内的十进制数。指定值 0 将禁用哈希随机化。

PYTHONHOME

更改标准 Python 库的位置。默认情况下,库将在 ${prefix}/lib/python 和 ${exec_prefix}/lib/python 中搜索,其中 ${prefix} 和 ${exec_prefix} 是安装相关的目录,它们都默认为 /usr/local。当 $PYTHONHOME 设置为单个目录时,其值将替换 ${prefix} 和 ${exec_prefix}。要为这两个值指定不同的值,请将 $PYTHONHOME 设置为 ${prefix}:${exec_prefix}。

PYTHONINSPECT

如果设置为非空字符串,则等效于指定 -i 选项。

PYTHONINTMAXSTRDIGITS

限制在从字符串转换为 int 时,以及将 int 转换回 str 时,int 值中最大数字字符的数量。值为 0 会禁用限制。转换为或从基数为 2、4、8、16 和 32 时,永远不会进行限制。

这等效于 -X int_max_str_digits=NUMBER 选项。


PYTHONIOENCODING

如果在运行解释器之前设置此变量,它将覆盖用于 stdin/stdout/stderr 的编码,格式为 encodingname:errorhandler。errorhandler 部分是可选的,其含义与 str.encode() 中的含义相同。对于 stderr,errorhandler 部分将被忽略;处理器始终为“backslashreplace”。

PYTHONMALLOC

设置 Python 内存分配器和/或安装调试钩子。可用的内存分配器为 malloc 和 pymalloc。可用的调试钩子为 debug、malloc_debug 和 pymalloc_debug。

当 Python 以调试模式编译时,默认值为 pymalloc_debug,并且会自动使用调试钩子。否则,默认值为 pymalloc。

PYTHONMALLOCSTATS

如果设置为非空字符串,则每当创建新的 pymalloc 对象区域时,以及在关闭时,Python 将打印 pymalloc 内存分配器的统计信息。

如果使用 $PYTHONMALLOC 环境变量来强制使用 C 库的 malloc(3) 分配器,或者如果 Python 配置为不支持 pymalloc,则将忽略此变量。

PYTHONNOUSERSITE

如果设置为非空字符串,则等效于指定 -s 选项(不要将用户站点目录添加到 sys.path)。

PYTHONOPTIMIZE

如果设置为非空字符串,则等效于指定 -O 选项。如果设置为整数,则等效于多次指定 -O。

PYTHONPATH

增强模块文件的默认搜索路径。格式与 shell 的 $PATH 相同:一个或多个目录路径,用冒号分隔。非存在的目录将被静默忽略。默认搜索路径取决于安装,通常从 ${prefix}/lib/python 开始(参见上面的 PYTHONHOME)。默认搜索路径始终附加到 $PYTHONPATH。如果给出了脚本参数,则包含脚本的目录将插入到路径中,位于 $PYTHONPATH 的前面。可以从 Python 程序中通过变量 sys.path 来操作搜索路径。

PYTHON_PERF_JIT_SUPPORT

如果将此变量设置为非零值,则启用对 Linux perf 分析器的支持,以便可以使用 DWARF 信息检测 Python 调用。设置为 0 会禁用。

请参阅 -X perf_jit 选项。

PYTHONPERFSUPPORT

如果将此变量设置为非零值,则启用对 Linux perf 分析器的支持,以便可以检测 Python 调用。设置为 0 会禁用。

请参阅 -X perf 选项。

PYTHONPLATLIBDIR

覆盖 sys.platlibdir。

PYTHONPROFILEIMPORTTIME

如果将此环境变量设置为非空字符串,则 Python 将显示每个导入所需的时间。这与在命令行上设置 -X importtime 完全相同。

PYTHONPYCACHEPREFIX

如果设置了此变量,Python 将在位于此路径中的镜像目录树中写入 .pyc 文件,而不是在源树内的 __pycache__ 目录中。

这等效于指定 -X pycache_prefix=PATH 选项。


PYTHONSAFEPATH

如果将其设置为非空字符串,则不会自动将潜在的不安全路径(例如当前目录、脚本目录或空字符串)添加到 sys.path 中。请参阅 -P 选项。

PYTHONSTARTUP

如果这是可读文件的名称,则在交互模式下显示第一个提示符之前,将执行该文件中的 Python 命令。该文件在与执行交互命令相同的命名空间中执行,因此在交互会话中可以使用在其中定义的或导入的对象,而无需进行限定。您还可以在此文件中更改提示符 sys.ps1 和 sys.ps2。

PYTHONTRACEMALLOC

如果将此环境变量设置为非空字符串,则使用 tracemalloc 模块开始跟踪 Python 内存分配。

该变量的值是存储在跟踪中帧的最大数量。例如,PYTHONTRACEMALLOC=1 仅存储最新的帧。

PYTHONUNBUFFERED

如果将其设置为非空字符串,则等效于指定 -u 选项。

PYTHONUSERBASE

定义用户基本目录,用于计算用户 site-packages 目录以及 python -m pip install --user 的安装路径。

PYTHONUTF8

如果设置为 1,则启用 Python “UTF-8 模式”。设置为 0 则禁用。

PYTHONVERBOSE

如果将其设置为非空字符串,则等效于指定 -v 选项。如果设置为整数,则等效于多次指定 -v 选项。

PYTHONWARNDEFAULTENCODING

如果将此环境变量设置为非空字符串,则在默认使用区域性编码时,将发出 EncodingWarning。

PYTHONWARNINGS

如果将其设置为逗号分隔的字符串,则等效于为每个单独的值指定 -W 选项。

调试模式变量

设置这些变量仅在 Python 的调试版本中才会生效,也就是说,如果 Python 是使用 --with-pydebug 构建选项配置的。

PYTHONDUMPREFS

如果设置此环境变量,Python 将转储在关闭解释器后仍然存在的对象和引用计数。

PYTHONDUMPREFSFILE

如果设置,Python 将转储在关闭解释器后仍然存在的对象和引用计数,并将其输出到由此环境变量的值给出的路径下的文件中。

PYTHON_PRESITE

如果将此变量设置为模块,则该模块将在解释器生命周期的早期导入,在执行 site 模块之前,并在创建 __main__ 模块之前。这仅适用于调试构建。

这等效于 -X presite=module 选项。

作者

Python 软件基金会:https://www.python.org/psf/

互联网资源

主网站:https://www.python.org/ 文档:https://docs.python.org/ 开发者资源:https://devguide.python.org/ 下载:https://www.python.org/downloads/ 模块仓库:https://pypi.org/ 新闻组:comp.lang.python、comp.lang.python.announce


许可

Python 以开源许可的形式分发。请参阅 Python 源代码发行版中的“LICENSE”文件,以获取有关访问和使用 Python 的条款和条件的更多信息,以及所有免责声明。