Python 运行时服务详解
1. 安全与模块注册
在处理数据时,由于安全方面的考虑,程序不应反序列化来自不可信源的数据。 copy_reg
模块可用于向 pickle
模块注册新类型。
2. site
模块
site
模块在解释器启动时会自动导入,其主要作用是进行包的全局初始化以及设置默认的 Unicode 编码。具体流程如下:
- 目录列表创建 :该模块首先会根据 sys.prefix
和 sys.exec_prefix
的值创建一个最多包含四个目录名的列表。在 Windows 系统上,列表为 [sys.prefix, sys.exec_prefix]
;在 UNIX 系统上,列表为 [sys.prefix + ‘lib/pythonvers/site-packages’, sys.prefix + ‘lib/site-python’, sys.exec_prefix + ‘lib/pythonvers/site-packages’, sys.exec_prefix + ‘lib/site-python’]
。
- 目录检查与添加 :对于列表中的每个目录,会检查其是否存在。若存在,则将其添加到 sys.path
变量中。接着,会检查该目录是否包含任何路径配置文件(后缀为 .pth
的