首页  

python字节码缓存 .pyc 文件     所属分类 python 浏览量 11
__pycache__ 是 Python 3 自动生成的文件夹,
用于存储编译后的字节码文件(.pyc),这些文件能提高程序的加载速度
__pycache__ 是 Python 优化机制的一部分,能提升程序运行效率,通常无需干预  
在版本控制中忽略该文件夹,可保持项目整洁  



1. 作用与原理
字节码缓存:
Python 解释器执行代码前,会将 .py 文件编译为字节码(.pyc),并存储在 __pycache__ 中

加速加载:
下次运行相同代码时,若源码未修改,Python 会直接读取 .pyc 文件,跳过编译步骤,提升启动速度  

版本隔离:
不同 Python 版本(如 3.8、3.9)生成的 .pyc 文件不同,
会分别存储在 __pycache__ 中(如 module.cpython-38.pyc)  


2. 文件结构示例
假设项目结构如下:


my_project/
├── main.py
└── utils/
    ├── helper.py
    └── __init__.py

运行后,Python 会生成:

plaintext
my_project/
├── __pycache__/
│   └── main.cpython-39.pyc    # 对应 main.py
└── utils/
    ├── __pycache__/
    │   ├── helper.cpython-39.pyc  # 对应 helper.py
    │   └── __init__.cpython-39.pyc
    ├── helper.py
    └── __init__.py


3. 常见问题与处理方式
3.1 需要手动删除吗?
不需要:Python 会自动管理 .pyc 文件的更新和清理  
特殊情况:若源码修改后程序行为异常,可手动删除 __pycache__ 文件夹,Python 会重新生成 

3.2 如何禁用生成?
临时禁用:运行脚本时添加 -B 参数:

python -B main.py

环境变量:设置 PYTHONDONTWRITEBYTECODE=1:

# Linux/macOS
export PYTHONDONTWRITEBYTECODE=1
python main.py

# Windows
set PYTHONDONTWRITEBYTECODE=1
python main.py

3.3 如何在版本控制中忽略?
在 .gitignore 中添加:

__pycache__/
*.pyc


4. 注意事项
跨版本兼容性:不同 Python 版本生成的 .pyc 文件互不兼容,若升级 Python,建议删除旧的缓存  
源码依赖:.pyc 文件会记录源码的修改时间(mtime),若源码被修改,Python 会自动重新编译

上一篇     下一篇
python3 fastapi 简介

Python __name__ 使用

flask hello

python 项目目录结构

可发布Python包 项目示例

pytorch 快速入门