{site_name}

{site_name}

🌜 搜索

PEP 3147 是 Python Enhancement Proposal (

Python 𝄐 0
python仓库管理,python 仓库管理系统,python的pyb库,python的库存在哪里,用python写仓库软件,python仓库系统开发
PEP 3147 是 Python Enhancement Proposal (Python 增强提案) 的一部分,它定义了 Python 编译后的字节码文件(.pyc 文件)的存储位置和加载方式。具体来说,PEP 3147 提出使用单独的目录来存储 .pyc 文件,而不是像以前那样将它们混合在与源代码相同的目录中。

这个 PYC 仓库目录默认为 __pycache__ 目录,它位于包含源代码的目录下。在该目录下,每个模块都有一个子目录,其名称为 <module name>.<cpython version number>,其中 <module name> 是模块的名称,<cpython version number> 是当前 CPython 解释器版本的数字表示,例如 "37" 表示 CPython 3.7 版本。每个子目录中都包含一个名为 <module name>.cpython-<cpython version number>.pyc 的编译后字节码文件。

例如,假设有以下 Python 模块:


my_package/
__init__.py
my_module.py


在 Python 3.2 及以上版本中,当你导入 my_package.my_module 模块时,它将生成一个名为 my_module.cpython-32.pyc 的字节码文件,并将其放在 my_package/__pycache__/ 目录下的 my_module.cpython-32/ 子目录中。如果你升级到 Python 3.8,那么将生成一个名为 my_module.cpython-38.pyc 的新的字节码文件,且会放在一个名为 my_module.cpython-38/ 的新子目录下。

通过将 .pyc 文件存储在单独的目录中,PEP 3147 带来了一些好处,例如:

- 使得源代码目录更清晰,更易于管理。
- 确保不同版本的 Python 解释器生成的 .pyc 文件彼此独立,避免混淆和错误。
- 可以方便地删除所有 .pyc 文件,而不会影响源代码。

需要注意的是,PYC 仓库目录只适用于 CPython 解释器。其他 Python 解释器可能采用不同的方式来存储和加载 .pyc 文件。