Python 中__pycache__文件夹

Python 中__pycache__文件夹

执行 Python 代码时,有时会生成一个名为 __pycache__ 的目录,里面包含大量后缀为 .pyc 的文件。

源代码先被编译为字节码,再由 Python 虚拟机执行字节码,过程中依赖 Python 库完成底层功能,最终形成可运行的程序。

Python 源代码编译为字节码的操作,由 Python 解释器完成,而非外部独立的编译工具。更具体地说,是 CPython 解释器内置的编译器模块。

Python 常被归类为解释型语言,但它不是 纯解释型------ 它会先把源码编译成字节码(中间码),再由虚拟机解释执行字节码。

  1. 解释器先把整个 .py 文件的源码一次性编译成字节码(不是逐行);
  2. 虚拟机再逐行执行字节码(而非源码);
  3. 同时把字节码缓存到 __pycache__,方便下次使用

之所以仍算解释型:

它没有提前生成面向硬件的机器码可执行文件;

逻辑还是 运行时由解释器(虚拟机)处理源码 / 字节码,而非 编译后直接运行机器码;

开发者无需手动执行编译步骤,和纯解释型语言的使用体验是一样的。

Python虚拟机(Python Virtual Machine,PVM) 是负责执行 Python 字节码的程序。

如果没有缓存,每次运行 Python 程序都需要:

复制代码
读取.py → 解析语法 → 编译 → 生成字节码

这样会增加启动时间。

有了 __pycache__:

复制代码
第一次运行
.py → 编译 → .pyc → 保存

第二次运行
直接加载 .pyc
相关推荐
ebiobiz16 小时前
极海 APM32 使用 Nimmake 编译指南
c++·python·单片机·嵌入式硬件·mcu
慢云智慧空间16 小时前
从智能终端到空间AI,慢云科技如何重新定义智慧建筑的核心能力?
人工智能·python·科技
2601_9628857216 小时前
如何用 Python 做股价历史分位选股?(筛出处于历史低位的股票)
开发语言·python
倔强的石头10617 小时前
【Linux指南】动静态库系列(十一):PLT 与延迟绑定:第一次调用动态库函数时发生了什么
linux·人工智能·python
梦帮科技17 小时前
vLLM / TensorRT-LLM 极限推理:PagedAttention 细粒度物理页表管理与连续批处理(Continuous Batching)实战
数据结构·人工智能·分布式·python·深度学习·算法·vllm
言乐617 小时前
Python概括后端原理
开发语言·python·django·virtualenv·pygame
Y38153266217 小时前
搜索 API 响应模块:featured_snippet、PAA 与 knowledge_graph 怎么用
python·搜索引擎
10年前端老司机18 小时前
实战分享:基于 PyMuPDF+Qwen-VL 实现图文兼容的 PDF RAG 方案
人工智能·python·agent
2601_9628857219 小时前
如何用 Python 回测定投策略(定期定额 DCA)?(和一次性买入对比)
开发语言·人工智能·python
蜗牛互联网19 小时前
Python接入Gemini 3.8 Flash实现票据视觉抽取与规则校验
java·javascript·网络·人工智能·python