当前位置: 首页 > news >正文

做网站不需要原件吧/福州网站建设

做网站不需要原件吧,福州网站建设,网络事件营销成功案例,平板购物网站建设1. 命令行与环境 为获取各种设置信息,CPython 解析器会扫描命令行与环境。 CPython 实现细节: 其他实现的命令行方案可能会有所不同。 详见 其他实现。 1.1. 命令行 调用 Python 时,可以指定下列任意选项: python [-bBdEhiIO…

1. 命令行与环境

为获取各种设置信息,CPython 解析器会扫描命令行与环境。

CPython 实现细节: 其他实现的命令行方案可能会有所不同。 详见 其他实现。

1.1. 命令行

调用 Python 时,可以指定下列任意选项:

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

最常见的用例是启动时执行脚本:

python myscript.py

1.1.1. 接口选项

解释器接口类似于 UNIX shell,但提供了额外的调用方法:

  • 用连接到 tty 设备的标准输入调用时,会提示输入并执行命令,输入 EOF (文件结束符,UNIX 中按 Ctrl-D,Windows 中按 Ctrl-Z, Enter)时终止。

  • 用文件名参数或以标准输入文件调用时,读取,并执行该脚本文件。

  • 用目录名参数调用时,从该目录读取、执行适当名称的脚本。

  • 用 -c command 调用时,执行 command 表示的 Python 语句。command 可以包含用换行符分隔的多条语句。注意,前导空白字符在 Python 语句中非常重要!

  • 用 -m module-name 调用时,在 Python 模块路径中查找指定的模块,并将其作为脚本执行。

非交互模式下,先解析全部输入,再执行。

接口选项会终结解释器读入的选项列表,所有后续参数都在 sys.argv 里 -- 注意,首个元素,即下标为零的元素(sys.argv[0])是表示程序来源的字符串。

-c <command>

执行 command 中的 Python 代码。command 可以是一条语句,也可以是用换行符分隔的多条语句,其中,前导空白字符与普通模块代码中的作用一样。

使用此选项时,sys.argv 的首个元素为 "-c",并会把当前目录加入至 sys.path 开头(让该目录中的模块作为顶层模块导入)。

使用 command 参数会引发 审计事件 cpython.run_command 。

-m <module-name>

在 sys.path 中搜索指定模块,并以 __main__ 模块执行其内容。

该参数是 模块名,请勿输入文件扩展名(.py)。模块名应为有效的绝对 Python 模块名,但本实现对此不作强制要求(例如,允许使用含连字符 - 的名称)。

包名称(包括命名空间包)也允许使用。使用包名称而不是普通模块名时,解释器把 <pkg>.__main__ 作为主模块执行。此行为特意被设计为与作为脚本参数传递给解释器的目录和 zip 文件的处理方式类似。

备注

此选项不适用于内置模块和以 C 编写的扩展模块,因为它们并没有对应的 Python 模块文件。 但是它仍然适用于预编译的模块,即使没有可用的初始源文件。

如果给出此选项,sys.argv 的首个元素将为模块文件的完整路径 (在定位模块文件期间,首个元素将设为 "-m")。 与 -c 选项一样,当前目录将被加入 sys.path 的开头。

-I 选项可用来在隔离模式下运行脚本,此模式中 sys.path 既不包含当前目录也不包含用户的 site-packages 目录。 所有 PYTHON* 环境变量也都会被忽略。

许多标准库模块都包含在执行时,以脚本方式调用的代码。例如 timeit 模块:

python -m timeit -s "setup here" "benchmarked code here"
python -m timeit -h # for details

使用 module-name 参数会引发 审计事件 cpython.run_module 。

参见

runpy.run_module()

Python 代码可以直接使用的等效功能

PEP 338 -- 将模块作为脚本执行

在 3.1 版本发生变更: 提供包名称来运行 __main__ 子模块。

在 3.4 版本发生变更: 同样支持命名空间包

-

从标准输入 (sys.stdin) 读取命令。标准输入为终端时,使用 -i。

使用此选项时,sys.argv 的第一个元素是 "-", 同时,把当前目录加入 sys.path 开头。

没有参数时,会触发 审计事件 cpython.run_stdin 。

<script>

执行 script 中的 Python 代码,该参数应为(绝对或相对)文件系统路径,指向 Python 文件、包含 __main__.py 文件的目录,或包含 __main__.py 文件的 zip 文件。

给出此选项时,sys.argv 的第一个元素就是在命令行中指定的脚本名称。

如果脚本名称直接指向 Python 文件,则把该文件所在目录加入 sys.path 的开头,并且把该文件当作 __main__ 模块来执行。

如果脚本名称指向目录或 zip 文件,则把脚本名加入 sys.path 的开头,并把该位置中的 __main__.py 文件当作 __main__ 模块来执行。

-I 选项可用来在隔离模式下运行脚本,此模式中 sys.path 既不包含当前目录也不包含用户的 site-packages 目录。 所有 PYTHON* 环境变量也都会被忽略。

使用 filename 参数会引发 审计事件 cpython.run_file 。

参见

runpy.run_path()

Python 代码可以直接使用的等效功能

未给出接口选项时,使用 -i,sys.argv[0] 为空字符串 (""),并把当前目录加至 sys.path 的开头。 此外,如果系统支持,还能自动启用 tab 补全和历史编辑(参见 Readline 配置)。

参见

唤出解释器

在 3.4 版本发生变更: 自动启用 tab 补全和历史编辑。

1.1.2. 通用选项

-?

-h

--help

打印所有命令行选项及对应环境变量的简短描述然后退出。

--help-env

打印 Python 专属环境变量的简短描述然后退出。

在 3.11 版本加入.

--help-xoptions

打印实现专属 -X 选项的简短描述然后退出。

在 3.11 版本加入.

--help-all

打印完整使用信息然后退出。

在 3.11 版本加入.

-V

--version

输出 Python 版本号并退出。示例如下:

Python 3.8.0b2+

输入两次 V 选项时,输出更多构建信息,例如:

Python 3.8.0b2+ (3.8:0c076caaa8, Apr 20 2019, 21:55:00)
[GCC 6.2.0 20161005]

在 3.6 版本加入: -VV 选项。

1.1.3. 其他选项

-b

用 str 与 bytes 或 bytearray 对比, 或对比 bytes 与 int 时,会发出警告。重复给出该选项(-bb)时会报错。

在 3.5 版本发生变更: 影响 bytes 与 int 的比较。

-B

给出此选项时,Python 不在导入源模块时写入 .pyc 文件。另请参阅 PYTHONDONTWRITEBYTECODE。

--check-hash-based-pycs default|always|never

控制基于哈希值的 .pyc 文件的验证行为。 参见 已缓存字节码的失效。 当设为 default 时,已选定和未选定的基于哈希值的字节码缓存文件将根据其默认语义进行验证。 当设为 always 时,所有基于哈希值的 .pyc 文件,不论是已选定还是未选定的都将根据其对应的源文件进行验证。 当设为 never 时,基于哈希值的 .pyc 文件将不会根据其对应的源文件进行验证。

基于时间戳的 .pyc 文件的语义不会受此选项影响。

-d

启用解析器调试输出(仅供专家查看)。 另请参见 PYTHONDEBUG 环境变量。

此选项需要 Python 的调试构建版,否则它将被忽略。

-E

忽略所有 PYTHON* 环境变量,例如可能已设置的 PYTHONPATH 和 PYTHONHOME。

另请参阅 -P 和 -I (隔离) 选项。

-i

脚本是第一个参数,或使用 -c 时,即便 sys.stdin 不是终端,执行脚本或命令后,也会进入交互模式。不读取 PYTHONSTARTUP 文件。

本选项用于,脚本触发异常时,检查全局变量或堆栈回溯。 详见 PYTHONINSPECT。

-I

以隔离模式运行 Python。 这还将应用 -E, -P 和 -s 选项。

在隔离模式下 sys.path 既不包含脚本所在目录也不包含用户的 site-packages 目录。 所有 PYTHON* 环境变量也都会被忽略。 还可以施加更进一步的限制以防止用户注入恶意代码。

在 3.4 版本加入.

-O

移除 assert 语句以及任何以 __debug__ 的值作为条件的代码。 通过在 .pyc 扩展名之前添加 .opt-1 来扩充已编译文件 (bytecode) 的文件名 (参见 PEP 488)。 另请参阅 PYTHONOPTIMIZE。

在 3.5 版本发生变更: 依据 PEP 488 修改 .pyc 文件名。

-OO

在启用 -O 的同时丢弃文档字符串。 通过在 .pyc 扩展名之前添加 .opt-2 来扩展已编译文件 (bytecode) 的文件名 (参见 PEP 488)。

在 3.5 版本发生变更: 依据 PEP 488 修改 .pyc 文件名。

-P

不要将具有潜在不安全性的路径附加到 sys.path:

  • python -m module 命令行: 不要附加当前工作目录。

  • python script.py 命令行: 不要附加脚本所在目录。 如果是一个符号链接,则会解析符号链接。

  • python -c code 和 python (REPL) 命令行: 不要附加空字符串,这表示当前工作目录。

另请参阅 PYTHONSAFEPATH 环境变量,以及 -E 和 -I (隔离) 选项。

在 3.11 版本加入.

-q

即使在交互模式下也不显示版权和版本信息。

在 3.2 版本加入.

-R

开启哈希随机化。 此选项权 PYTHONHASHSEED 环境变量设置为 0 时起作用,因为哈希随机化是默认启用的。

在之前版本的 Python 中,此选项会启用哈希随机化,以将字符串和字节串对象的 __hash__() 值用不可预测的随机值“加盐”。 虽然它们在单个 Python 进程内将保持恒定,但是在重复发起调用的 Python 进程间它们将是不可预测的。

哈希随机化旨在针对由精心选择的输入引起的拒绝服务攻击提供防护,这种输入利用了构造 dict 在最坏情况下的性能即 O(n2) 复杂度。 请参阅 oCERT archive 了解详情。

PYTHONHASHSEED 允许你为哈希种子密码设置一个固定值。

在 3.7 版本发生变更: 此选项不会再被忽略。

在 3.2.3 版本加入.

-s

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

参见

PEP 370 -- 分用户的 site-packages 目录

-S

禁用 site 的导入及其所附带的基于站点对 sys.path 的操作。 如果 site 会在稍后被显式地导入也会禁用这些操作 (如果你希望触发它们则应调用 site.main())。

-u

强制 stdout 和 stderr 流不使用缓冲。 此选项对 stdin 流无影响。

另请参阅 PYTHONUNBUFFERED。

在 3.7 版本发生变更: stdout 和 stderr 流在文本层现在不使用缓冲。

-v

每次在初始化模块时会打印一条信息,显示被加载的地方(文件名或内置模块名)。当给出两个v( -vv )时,搜索模块时会为每个文件打印一条信息。退出时模块清理的信息也会给出来。

在 3.10 版本发生变更: 由 site 模块可以得到将要处理的站点路径和 .pth 文件。

参阅 PYTHONVERBOSE 。

-W arg

警告信息的控制。Python 的警告机制默认将警告信息打印到 sys.stderr。

最简单的设置是将某个特定操作无条件地应用于进程所发出所有警告 (即使是在默认情况下会忽略的那些警告):

-Wdefault  # Warn once per call location
-Werror    # Convert to exceptions
-Walways   # Warn every time
-Wmodule   # Warn once per calling module
-Wonce     # Warn once per Python process
-Wignore   # Never warn

action 名可以根据需要进行缩写,解释器将会解析为合适的名称。例如,-Wi 与 -Wignore 相同。

完整的参数如下:

action:message:category:module:lineno

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

action 字段如上所述,但只适用于匹配其余字段的警告。

message 字段必须与整个警告信息相匹配;不区分大小写。

category 字段与警告类别相匹配(DeprecationWarning 等)。必须是个类名;检测消息的实际警告类别是否为指定类别的子类。

module 字段匹配的是(完整限定)模块名称;这种匹配是大小写敏感的。

lineno 字段匹配行号,其中 0 匹配所有行号,相当于省略了行号。

可以给出多个 -W 选项;当某条警告信息匹配上多个选项时,将执行最后一个匹配项的操作。非法 -W 选项将被忽略(不过,在触发第一条警告时,会打印出一条无效选项的警告信息)。

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

请参阅 警告过滤器 和 警告过滤器的介绍 了解更多细节。

-x

跳过源中第一行,以允许使用非 Unix 形式的 #!cmd。 这适用于 DOS 专属的破解操作。

-X

保留用于各种具体实现专属的选项。 CPython 目前定义了下列可用的值:

  • -X faulthandler 将启用 faulthandler。 另请参阅 PYTHONFAULTHANDLER。

  • -X showrefcount 可在程序结束时或在交互式解释器每条语句后,输出总的引用计数和使用的内存块数。这只适用于 调试版本。

  • -X tracemalloc 使用 tracemalloc 模块启动对 Python 内存分配的跟踪。 在默认情况下,只有最近的帧会保存在跟踪的回溯信息中。 使用 -X tracemalloc=NFRAME 来启动限定回溯 NFRAME 帧的跟踪。 请参阅 tracemalloc.start() 和 PYTHONTRACEMALLOC 了解详情。

  • -X int_max_str_digits 将配置 整数字符串转换长度限制。 另请参阅 PYTHONINTMAXSTRDIGITS。

  • -X importtime 显示每次导入耗费的时间。 它会显示模块名称,累计时间(包括嵌套的导入)和自身时间(排除嵌套的导入)。 请注意它的输出在多线程应用程序中可能会出错。 典型用法如 python3 -X importtime -c 'import asyncio'。 另请参阅 PYTHONPROFILEIMPORTTIME。

  • -X dev: 启用 Python 开发模式,引入在默认情况下启用会导致开销过大的运行时检查。

  • -X utf8 启用 Python UTF-8 模式。 -X utf8=0 将显式地禁用 Python UTF-8 模式 (即使在该模式应该会自动激活时也是如此)。 另请参阅 PYTHONUTF8。

  • -X pycache_prefix=PATH 允许将 .pyc 文件写入以给定目录为根的并行树,而不是代码树。另见 PYTHONPYCACHEPREFIX 。

  • -X warn_default_encoding issues a EncodingWarning when the locale-specific default encoding is used for opening files. See also PYTHONWARNDEFAULTENCODING.

  • -X no_debug_ranges 会禁用在代码对象中包括将额外位置信息(结束行、开始列偏移量和结束列偏移量)映射到每条指令的映射表。 这在需要较小的代码对象和 pyc 文件时很有用处并可在解释器显示回溯时屏蔽额外的视觉位置提示。 另请参阅 PYTHONNODEBUGRANGES。

  • -X frozen_modules 会决定被冻结的模块是否要被导入机制所忽略。 值为 "on" 表示它们将被导入而 "off" 表示它们将被忽略。 如果这是已安装的 Python (正常情况) 则默认为 "on"。 如果是尚在开发中 (从源代码树运行) 则默认为 "off"。 请注意已冻结的 "importlib_bootstrap" 和 "importlib_bootstrap_external" 模块将总是会被使用,即使该旗标被设为 "off"。

  • -X perf 会启用对 Linux perf 性能分析器的支持。 当提供了此选项时,perf 性能分析器将能够报告 Python 调用。 此选项仅在某些平台上可用而在当前系统不支持的情况下将不做任何事。 默认值为 "off"。 另请参阅 PYTHONPERFSUPPORT 和 Python 对 Linux perf 性能分析器的支持。

它还允许传入任意值并通过 sys._xoptions 字典来提取这些值。

在 3.2 版本发生变更: 增加了 -X 选项。

在 3.3 版本加入: -X faulthandler 选项。

在 3.4 版本加入: -X showrefcount 与 -X tracemalloc 选项。

在 3.6 版本加入: -X showalloccount 选项。

在 3.7 版本加入: -X importtime-X dev 与 -X utf8 选项。

在 3.8 版本加入: -X pycache_prefix 选项。 -X dev 选项现在在 io.IOBase 析构函数中记录 close() 异常。

在 3.9 版本发生变更: 使用 -X dev 选项,在字符串编码和解码操作时检查 encoding 和 errors 参数。

The -X showalloccount 选项已被移除。

在 3.10 版本加入: -X warn_default_encoding 选项。 移除了 -X oldparser 选项。

在 3.11 版本加入: -X no_debug_ranges 选项。

在 3.11 版本加入: -X frozen_modules 选项。

在 3.11 版本加入: -X int_max_str_digits 选项。

在 3.12 版本加入: -X perf 选项。option.

1.1.4. 不应当使用的选项

-J

保留给 Jython 使用。

1.2. 环境变量

这些环境变量会影响 Python 的行为,它们是在命令行开关之前被处理的,但 -E 或 -I 除外。 根据约定,当存在冲突时命令行开关会覆盖环境变量的设置。

PYTHONHOME

更改标准 Python 库的位置。 默认情况下库是在 prefix/lib/pythonversion 和 exec_prefix/lib/pythonversion 中搜索,其中 prefix 和 exec_prefix 是由安装位置确定的目录,默认都位于 /usr/local

当 PYTHONHOME 被设为单个目录时,它的值会同时替代 prefix 和 exec_prefix。 要为两者指定不同的值,请将 PYTHONHOME 设为 prefix:exec_prefix

PYTHONPATH

增加模块文件默认搜索路径。 所用格式与终端的 PATH 相同:一个或多个由 os.pathsep 分隔的目录路径名称(例如 Unix 上用冒号而在 Windows 上用分号)。 默认忽略不存在的目录。

除了普通目录之外,单个 PYTHONPATH 条目可以引用包含纯Python模块的zip文件(源代码或编译形式)。无法从zip文件导入扩展模块。

默认索引路径依赖于安装路径,但通常都是以 prefix/lib/pythonversion 开始 (参见上文中的 PYTHONHOME)。 它 总是 会被添加到 PYTHONPATH。

有一个附加目录将被插入到索引路径的 PYTHONPATH 之前,正如上文中 接口选项 所描述的。 搜索路径可以在 Python 程序内作为变量 sys.path 来进行操作。

PYTHONSAFEPATH

如果这被设为一个非空字符串,请不要将具有潜在不安全性的路径附加到 sys.path: 参见 -P 选项了解详情。

在 3.11 版本加入.

PYTHONPLATLIBDIR

如果它被设为非空字符串,则会覆盖 sys.platlibdir 值。

在 3.9 版本加入.

PYTHONSTARTUP

这如果是一个可读文件的名称,该文件中的 Python 命令会在交互模式的首个提示符显示之前被执行。 该文件会在与交互式命令执行所在的同一命名空间中被执行,因此其中所定义或导入的对象可以在交互式会话中无限制地使用。 你还可以在这个文件中修改提示符 sys.ps1 和 sys.ps2 以及钩子 sys.__interactivehook__。

使用 filename 参数会引发 审计事件 cpython.run_startup 。

PYTHONOPTIMIZE

这如果被设为一个非空字符串,它就相当于指定 -O 选项。 如果设为一个整数,则它就相当于多次指定 -O。

PYTHONBREAKPOINT

此变量如果被设定,它会使用加点号的路径标记一个可调用对象。 包含该可调用对象的模块将被导入,随后该可调用对象将由 sys.breakpointhook() 的默认实现来运行,后者自身将由内置的 breakpoint() 来调用。 如果未设定,或设定为空字符串,则它相当于值 "pdb.set_trace"。 将此变量设为字符串 "0" 会导致 sys.breakpointhook() 的默认实现不做任何事而直接返回。

在 3.7 版本加入.

PYTHONDEBUG

此变量如果被设为一个非空字符串,它就相当于指定 -d 选项。 如果设为一个整数,则它就相当于多次指定 -d。

此环境变量需要 Python 的调试构建版,否则它将被忽略。

PYTHONINSPECT

此变量如果被设为一个非空字符串,它就相当于指定 -i 选项。

此变量也可由 Python 代码使用 os.environ 来修改以在程序终结时强制检查模式。

PYTHONUNBUFFERED

此变量如果被设为一个非空字符串,它就相当于指定 -u 选项。

PYTHONVERBOSE

此变量如果被设为一个非空字符串,它就相当于指定 -v 选项。 如果设为一个整数,则它就相当于多次指定 -v。

PYTHONCASEOK

如果设置了此变量,Python 将忽略 import 语句中的大小写。 这仅在 Windows 和 macOS 上有效。

PYTHONDONTWRITEBYTECODE

此变量如果被设为一个非空字符串,Python 将不会尝试在导入源模块时写入 .pyc 文件。 这相当于指定 -B 选项。

PYTHONPYCACHEPREFIX

如果设置了此选项,Python将在镜像目录树中的此路径中写入 .pyc 文件,而不是源树中的 __pycache__ 目录中。这相当于指定 -X pycache_prefix=PATH 选项。

在 3.8 版本加入.

PYTHONHASHSEED

如果此变量未设置或设为 random,将使用一个随机值作为 str 和 bytes 对象哈希运算的种子。

如果 PYTHONHASHSEED 被设为一个整数值,它将被作为固定的种子数用来生成哈希随机化所涵盖的类型的 hash() 结果。

它的目的是允许可复现的哈希运算,例如用于解释器本身的自我检测,或允许一组 python 进程共享哈希值。

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

在 3.2.3 版本加入.

PYTHONINTMAXSTRDIGITS

如果将此变量设为一个整数,它会被用来配置解释器的全局 整数字符串转换长度限制。

在 3.11 版本加入.

PYTHONIOENCODING

如果此变量在运行解释器之前被设置,它会覆盖通过 encodingname:errorhandler 语法设置的 stdin/stdout/stderr 所用编码。 encodingname 和 :errorhandler 部分都是可选项,与在 str.encode() 中的含义相同。

对于 stderr,:errorhandler 部分会被忽略;处理程序将总是为 'backslashreplace'

在 3.4 版本发生变更: “encodingname” 部分现在是可选的。

在 3.6 版本发生变更: 在 Windows 上,对于交互式控制台缓冲区会忽略此变量所指定的编码,除非还指定了 PYTHONLEGACYWINDOWSSTDIO。 通过标准流重定向的文件和管道则不受其影响。

PYTHONNOUSERSITE

如果设置了此变量,Python 将不会把 用户 site-packages 目录 添加到 sys.path。

参见

PEP 370 -- 分用户的 site-packages 目录

PYTHONUSERBASE

定义 用户基准目录,它将被用来计算 user site-packages 目录 以及 python -m pip install --user 的 安装路径。

参见

PEP 370 -- 分用户的 site-packages 目录

PYTHONEXECUTABLE

如果设置了此环境变量,则 sys.argv[0] 将被设为此变量的值而不是通过 C 运行时所获得的值。 这仅在 macOS 上起作用。

PYTHONWARNINGS

此变量等价于 -W 选项。 如果被设为一个以逗号分隔的字符串,它就相当于多次指定 -W,列表中后出现的过滤器优先级会高于列表中先出现的。

最简单的设置是将某个特定操作无条件地应用于进程所发出所有警告 (即使是在默认情况下会忽略的那些警告):

PYTHONWARNINGS=default  # Warn once per call location
PYTHONWARNINGS=error    # Convert to exceptions
PYTHONWARNINGS=always   # Warn every time
PYTHONWARNINGS=module   # Warn once per calling module
PYTHONWARNINGS=once     # Warn once per Python process
PYTHONWARNINGS=ignore   # Never warn

请参阅 警告过滤器 和 警告过滤器的介绍 了解更多细节。

PYTHONFAULTHANDLER

如果此环境变量被设为一个非空字符串,faulthandler.enable() 会在启动时被调用:为 SIGSEGV, SIGFPE, SIGABRT, SIGBUS 和 SIGILL 等信号安装一个处理句柄以转储 Python 回溯信息。 此环境变量等价于 -X faulthandler 选项。

在 3.3 版本加入.

PYTHONTRACEMALLOC

如果此环境变量被设为一个非空字符串,则会使用 tracemalloc 模块启动对 Python 内存分配的跟踪。 该变量的值是保存在跟踪的回溯信息中的最大帧数。 例如, PYTHONTRACEMALLOC=1 只保存最近的帧。 请参阅 tracemalloc.start() 函数了解更多信息。 这等价于设置 -X tracemalloc 选项。

在 3.4 版本加入.

PYTHONPROFILEIMPORTTIME

如果此环境变量被设为一个非空字符串,Python 将会显示每次导入药费了多长时间。 这等价于设置 -X importtime 选项。

在 3.7 版本加入.

PYTHONASYNCIODEBUG

如果此变量被设为一个非空字符串,则会启用 asyncio 模块的 调试模式。

在 3.4 版本加入.

PYTHONMALLOC

设置 Python 内存分配器和/或安装调试钩子。

设置 Python 所使用的内存分配器族群:

  • default: 使用 默认内存分配器。

  • malloc: 对所有域 (PYMEM_DOMAIN_RAW, PYMEM_DOMAIN_MEM, PYMEM_DOMAIN_OBJ) 使用 C 库的 malloc() 函数。

  • pymalloc: 对 PYMEM_DOMAIN_MEM 和 PYMEM_DOMAIN_OBJ 域使用 pymalloc 分配器 而对 PYMEM_DOMAIN_RAW 域使用 malloc() 函数。

安装 调试钩子 :

  • debug: 在 默认内存分配器 之上安装调试钩子。

  • malloc_debug: 与 malloc 相同但还会安装调试钩子。

  • pymalloc_debug: 与 pymalloc 相同但还会安装调试钩子。

在 3.7 版本发生变更: 增加了 "default" 分配器。

在 3.6 版本加入.

PYTHONMALLOCSTATS

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

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

在 3.6 版本发生变更: 此变量现在也可以被用于在发布模式下编译的 Python。 如果它被设置为一个空字符串则将没有任何效果。

PYTHONLEGACYWINDOWSFSENCODING

如果设为非空字符串,默认的 filesystem encoding and error handler 模式将恢复到 3.6 版本之前的值 “mbcs”和“replace”。 否则,将采用新的默认值“utf-8”和“surrogatepass”。

这也可以在运行时通过 sys._enablelegacywindowsfsencoding() 来启用。

可用性: Windows。

在 3.6 版本加入: 更多详情请参阅 PEP 529。

PYTHONLEGACYWINDOWSSTDIO

如果设为一个非空字符串,则不使用新的控制台读取器和写入器。 这意味着 Unicode 字符将根据活动控制台的代码页进行编码,而不是使用 utf-8。

如果标准流被重定向(到文件或管道)而不是指向控制台缓冲区则该变量会被忽略。

可用性: Windows。

在 3.6 版本加入.

PYTHONCOERCECLOCALE

如果值设为 0,将导致主 Python 命令行应用跳过将传统的基于 ASCII 的 C 与 POSIX 区域设置强制转换为更强大的基于 UTF-8 的替代方案。

如果此变量 未被 设置(或被设为 0 以外的值),则覆盖环境变量的 LC_ALL 区域选项也不会被设置,并且报告给 LC_CTYPE 类别的当前区域选项或者为默认的 C 区域,或者为显式指明的基于 ASCII 的 POSIX 区域,然后 Python CLI 将在加载解释器运行时之前尝试为 LC_CTYPE 类别按指定的顺序配置下列区域选项:

  • C.UTF-8

  • C.utf8

  • UTF-8

如果成功设置了以上区域类别中的一个,则初始化 Python 运行时之前也将在当前进程环境中相应地设置 LC_CTYPE 环境变量。 这会确保除了解释器本身和运行于同一进程中的其他可感知区域选项的组件 (例如 GNU readline 库) 之外,还能在子进程 (无论这些进程是否在运行 Python 解释器) 以及在查询环境而非当前 C 区域的操作 (例如 Python 自己的 locale.getdefaultlocale()) 中看到更新的设置。

(显式地或通过上述的隐式区域强制转换) 配置其中一个区域选项将自动为 sys.stdin 和 sys.stdout 启用 surrogateescape 错误处理句柄 (sys.stderr 会继续使用 backslashreplace 如同在任何其他区域选项中一样)。 这种流处理行为可以按通常方式使用 PYTHONIOENCODING 来覆盖。

出于调试目的,如果激活了区域强制转换,或者如果当 Python 运行时被初始化时某个 应该 触发强制转换的区域选项仍处于激活状态则设置 PYTHONCOERCECLOCALE=warn 将导致 Python 在 stderr 上发出警告消息。

还要注意,即使在区域转换转换被禁用,或者在其无法找到合适的目标区域时,默认 PYTHONUTF8 仍将在传统的基于 ASCII 的区域中被激活。 必须同时禁用这两项特性以强制解释器使用 ASCII 而不是 UTF-8 作为系统接口。

可用性: Unix。

在 3.7 版本加入: 请参阅 PEP 538 了解详情。

PYTHONDEVMODE

如果此环境变量被设为一个非空字符串,则会启用 Python 开发模式,引入在默认情况下启用扩展会导致开销过大的额外运行时检查。 这等价于设置 -X dev 选项。

在 3.7 版本加入.

PYTHONUTF8

如果设为 1 ,将会启用 Python UTF-8 模式。

若设为 0 ,则会禁用 Python UTF-8 模式 。

设置任何其他非空字符串会在解释器初始化期间导致错误。

在 3.7 版本加入.

PYTHONWARNDEFAULTENCODING

如果该环境变量设为一个非空字符串,则在采用某地区默认编码时,将会引发一条 EncodingWarning 。

请参阅 选择性的 EncodingWarning 来了解详情。

在 3.10 版本加入.

PYTHONNODEBUGRANGES

如果设置了此变量,它会禁用在代码对象中包括将额外位置信息(结束行、开始列偏移量和结束列偏移量)映射到每条指令的映射表。 这在需要较小的代码对象和 pyc 文件时很有用处并可在解释器显示回溯时屏蔽额外的视觉位置提示。

在 3.11 版本加入.

PYTHONPERFSUPPORT

如果此变量被设为非零值,它将启用对 Linux perf 分析器的支持以便 Python 调用能被它检测到。

如果设为 0,则禁用 Linux perf 性能分析器支持。

另请参阅 -X perf 命令行选项和 Python 对 Linux perf 性能分析器的支持。

在 3.12 版本加入.

1.2.1. 调试模式变量

PYTHONDUMPREFS

如果设置,Python在关闭解释器,及转储对象和引用计数后仍将保持活动。

需用 --with-trace-refs 编译选项来配置 Python。

PYTHONDUMPREFSFILE=FILENAME

如果设置,Python 在关闭解释器后将把仍然存活的对象和引用计数转储至名为 FILENAME 的文件中。

需用 --with-trace-refs 编译选项来配置 Python。

在 3.11 版本加入.

相关文章:

1.操作Python入门Python安装和使用教程

1. 命令行与环境 为获取各种设置信息&#xff0c;CPython 解析器会扫描命令行与环境。 CPython 实现细节&#xff1a; 其他实现的命令行方案可能会有所不同。 详见 其他实现。 1.1. 命令行 调用 Python 时&#xff0c;可以指定下列任意选项&#xff1a; python [-bBdEhiIO…...

STM32G030C8T6:定时器1ms中断(以64MHz外部晶振为例)

本专栏记录STM32开发各个功能的详细过程&#xff0c;方便自己后续查看&#xff0c;当然也供正在入门STM32单片机的兄弟们参考&#xff1b; 本小节的目标是&#xff0c;系统主频64 MHZ,采用高速外部晶振&#xff0c;通过定时器3 每秒中断控制 PB9 引脚输出高低电平&#xff0c;从…...

人工智能聊天机器人如何帮助您实现工作与生活的平衡

如何用AI聊天机器人实现高效工作生活平衡 工作与生活平衡是管理个人和职业生活需求和责任的能力。 在当今快节奏和竞争激烈的世界中&#xff0c;工作与生活平衡被视为一个理想的目标。然而&#xff0c;对于忙碌的专业人士来说&#xff0c;实现工作与生活的平衡可能具有挑战性&a…...

3分钟看懂设计模式01:策略模式

一、什么是策略模式 定义一些列算法类&#xff0c;将每一个算法封装起来&#xff0c;并让它们可以互相替换。 策略模式让算法独立于使用它的客户而变化&#xff0c;是一种对象行为型模式。 以上是策略模式的一般定义&#xff0c;属于是课本内容。 在没有真正理解策略模式之…...

数据结构与算法:算法详解

1. 引言 1.1 算法在计算机科学中的地位和重要性 算法是计算机科学的基石&#xff0c;它指导着计算机在解决各种问题时的行为。一个好的算法可以使得问题的解决更加高效、精确和可靠&#xff0c;因此在计算机科学中具有至关重要的地位。 1.2 学习算法的意义和目标 学习算法不…...

AOSP10 替换系统launcher

本文实现将原生的launcher 移除&#xff0c;替换成我们自己写的launcher。 分以下几个步骤&#xff1a; 一、新建一个自己的launcher项目。 1.直接使用android studio 新建一个项目。 2.修改AndroidManifest.xml <applicationandroid:persistent"true"androi…...

视频互动游戏如何暴打海王和舔狗

前言 前2篇文章回答了游戏的可取之处以及不可复制的地方还有对于这一类的情景互动游戏在2024年的发展预言。第三篇主要是回答在一篇中一个留言的读者问的问题“如何暴打海王和舔狗”&#xff0c;求同存异&#xff0c;希望能够跟更多的读者交流与互相学习。 海王和舔狗的特征 …...

大学生多媒体课程学习网站thinkphp+vue

开发语言&#xff1a;php 后端框架&#xff1a;Thinkphp 前端框架&#xff1a;vue.js 服务器&#xff1a;apache 数据库&#xff1a;mysql 运行环境:phpstudy/wamp/xammp等开发背景 &#xff08;一&#xff09; 研究课程的提出 &#xff08;二&#xff09;学习网站的分类与界定…...

信息系统项目管理师论文分享(质量管理)

水一篇文章。我发现身边考高项的朋友很多都是论文没过&#xff0c;我想着那就把我的论文分享出来&#xff0c;希望能有帮助。 质量管理 摘要 2020年5月&#xff0c;我作为项目经理参加了“某市某医联体的互联网诊疗&#xff08;互联网医院和远程医疗&#xff09;平台”的建设…...

Redis实现滑动窗口限流

常见限流算法 固定窗口算法 在固定的时间窗口下进行计数&#xff0c;达到阈值就拒绝请求。固定窗口如果在窗口开始就打满阈值&#xff0c;窗口后半部分进入的请求都会拒绝。 滑动窗口算法 在固定窗口的基础上&#xff0c;窗口会随着时间向前推移&#xff0c;可以在时间内平滑控…...

SQL Server查询计划(Query Plan)——XML查询计划

​​​​​​6.4.3. XML查询计划 SQL Server中,除了通过GUI工具和相关命令获取图形及文本查询计划外,我们还可以通过相关命令获取XML格式的查询计划,这里惯称其为XML查询计划。 SQL Server 2005版本引入了XML查询计划的新特性,其充分吸收了图形及文本查询计划的优势所在,…...

【day02】每天三道 java后端面试题:Java、C++和Go的区别 | Redis的特点和应用场景 | 计算机网络七层模型

文章目录 1. Java、C和 Go 语言的区别&#xff0c;各自的优缺点&#xff1f;2. 什么是Redis&#xff1f;Redis 有哪些特点&#xff1f; Redis有哪些常见的应用场景&#xff1f;3. 简述计算机网络七层模型和各自的作用&#xff1f; 1. Java、C和 Go 语言的区别&#xff0c;各自的…...

【Flink状态管理(八)】Checkpoint:CheckpointBarrier对齐后Checkpoint的完成、通知与对学习状态管理源码的思考

文章目录 一. 调用StreamTask执行Checkpoint操作1. 执行Checkpoint总体代码流程1.1. StreamTask.checkpointState()1.2. executeCheckpointing1.3. 将算子中的状态快照操作封装在OperatorSnapshotFutures中1.4. 算子状态进行快照1.5. 状态数据快照持久化 二. CheckpointCoordin…...

防御保护第八、九、十、十一天笔记

一、内容安全 1、DFI和DPI技术 --- 深度检测技术 DPI是一种基于应用层的流量检测和控制技术&#xff0c;它会对流量进行拆包&#xff0c;分析包头和应用层的内容&#xff0c;从而识别应用程序和应用程序的内容。这种技术增加了对应用层的分析&#xff0c;识别各种应用&#xf…...

【TypeScript基础知识点】的讲解

TypeScript基础知识点 TypeScript基础知识点 TypeScript基础知识点 TypeScript 是一种由 Microsoft 开发和维护的开源编程语言&#xff0c;它是 JavaScript 的一个超集&#xff0c;添加了可选的静态类型和基于类的面向对象编程&#xff0c;以下是一些 TypeScript 的基础知识点…...

牛客周赛 Round 34 解题报告 | 珂学家 | 构造思维 + 置换环

前言 整体评价 好绝望的牛客周赛&#xff0c;彻底暴露了CF菜菜的本质&#xff0c;F题没思路&#xff0c;G题用置换环骗了50%, 这大概是唯一的亮点了。 A. 小红的字符串生成 思路: 枚举 a,b两字符在相等情况下比较特殊 a, b input().split() if a b:print (2)print (a)pri…...

LeetCode13 罗马数字转整数

题目 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&…...

【Hudi】Upsert原理

17张图带你彻底理解Hudi Upsert原理 1.开始提交&#xff1a;判断上次任务是否失败&#xff0c;如果失败会触发回滚操作。然后会根据当前时间生成一个事务开始的请求标识元数据。2.构造HoodieRecord Rdd对象&#xff1a;Hudi 会根据元数据信息构造HoodieRecord Rdd 对象&#xf…...

信息系统服务:演绎数字时代的征程

信息系统服务作为数字化时代的基石&#xff0c;已经在人类社会的各个领域发挥着重要作用。本文将从信息系统服务的起源、发展和演化过程&#xff0c;通过生动的例子和准确客观的历史事实&#xff0c;探讨信息系统服务对人类社会的影响与变革。 1. 起源&#xff1a;信息处理的初…...

rust连接postgresql数据库

引入crate&#xff1a; postgres "0.19.7" use postgres::{Client, NoTls, error::Error};fn main() -> Result<(), Error> {let mut client Client::connect("hostlocalhost port5432 dbnamexxxxdb userpostgres passwordxxxxxx", NoTls).un…...

[面试] 什么是死锁? 如何解决死锁?

什么是死锁 死锁&#xff0c;简单来说就是两个或者多个的线程在执行的过程中&#xff0c;争夺同一个共享资源造成的相互等待的现象。如果没有外部干预线程会一直阻塞下去. 导致死锁的原因 互斥条件&#xff0c;共享资源 X 和 Y 只能被一个线程占用; 请求和保持条件&#xf…...

网络原理 HTTP _ HTTPS

回顾 我们前面介绍了HTTP协议的请求和响应的基本结构 请求报文是由首行请求头空行正文来组成的 响应报文是由首行形影头空行响应正文组成的 我们也介绍了一定的请求头之中的键值对的属性 Host,Content-type,Content-length,User-agent,Referer,Cookie HTTP协议中的状态码 我们先…...

软件实际应用实例,茶楼收银软件管理系统操作流程,茶室计时计费会员管理系统软件试用版教程

软件实际应用实例&#xff0c;茶楼收银软件管理系统操作流程&#xff0c;茶室计时计费会员管理系统软件试用版教程 一、前言 以下软件以 佳易王茶社计时计费管理系统软件V17.9为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、计时计费&…...

网络安全“三保一评”深度解析

“没有网络安全就没有国家安全”。近几年&#xff0c;我国法律法规陆续发布实施&#xff0c;为承载我国国计民生的重要网络信息系统的安全提供了法律保障&#xff0c;正在实施的“3保1评”为我国重要网络信息系统的安全构筑了四道防线。 什么是“3保1评”&#xff1f; 等保、分…...

IDA使用-2023CICSN华中赛区pwn题逆向为例

文章目录 相关字节标识导入函数和导出函数找程序入口函数选项设置重命名CISCN2023华中赛区分区赛AWDIDA源码main 构造结构体sub_141B() 打开局部变量类型的视图增加变量类型重新定义变量类型再次设置变量类型并重新定义再次设置变量类型并重新定义再次设置变量类型并重新定义 设…...

安装虚拟机出现的一些问题

1、在重新打开软件之后出现闪退 解决&#xff1a;[WSL] 解决nsenter: cannot open /proc/320/ns/time: No such file or directory 问题 小白向-CSDN博客2、重新启动xrdp服务命令 解决&#xff1a; sudo systemctl restart xrdp3、将端口从3389改为3390&#xff0c;因为此前…...

Git+py+ipynb Usage

0.default config ssh-keygen -t rsa #之后一路回车,当前目录.ssh/下产生公私钥 cat ~/.ssh/id_rsa.pub #复制公钥到账号 git config --global user.email account_email git config --global user.name account_namebug of ipynb TqdmWarning: IProgress not found. Please …...

eBPF实践篇之环境搭建

文章目录 前言实验环境前置知识配置开发环境最后 前言 你好&#xff0c;我是醉墨居士&#xff0c;本次我们学习一下eBPF&#xff0c;我们基于libbpf-bootstrap来进行我们的eBPF程序开发&#x1f917; 实验环境 一台Debian12操作系统的计算机&#xff0c;我使用的是Debian12.…...

机器学习科普及学习路线

机器学习是一种让计算机系统通过从数据中学习来改进性能的方法。它的学习方法主要包括监督学习、无监督学习和强化学习。下面我将详细解释机器学习的概念、学习方法和学习路线。 1. 机器学习概念&#xff1a; 机器学习是一种人工智能的分支&#xff0c;旨在使计算机系统能够从…...

如何在本地电脑部署HadSky论坛并发布至公网可远程访问【内网穿透】

文章目录 前言1. 网站搭建1.1 网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3 Cpolar稳定隧道&#xff08;本地设置&#xff09;2.4 公网访问测试 总结 前言 经过多年的基础…...