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

Pycharm为什么会自动创建__pycache__

Pycharm为什么会自动创建__pycache__

 

__pycache__是 Python 存储编译后字节码(.pyc 文件)的目录,目的是提升代码运行效率,PyCharm 运行、调试 Python 文件时会触发 Python 解释器生成该目录。

关键原因

  1. 存储字节码文件:Python 执行.py 文件时,会先将源码编译成机器可识别的字节码(.pyc),__pycache__就是专门存放这些字节码的文件夹。
  2. 加速后续运行:首次运行后,下次再执行该文件时,Python 会直接读取已编译的.pyc 文件,无需重新编译源码,大幅节省启动和运行时间。
  3. 触发场景:PyCharm 中只要执行、调试 Python 代码,或导入其他.py 模块,都会触发 Python 解释器的编译行为,进而自动生成__pycache__

  

=============================================

Pycharm中 禁用 __pycache__的生成

__pycache__的生成由 Python 解释器控制,而非 PyCharm 本身,因此禁用它需要通过配置 Python 解释器的行为实现。以下是 3 种实用方法,可根据场景选择:

方法 1:运行时添加-B参数(推荐,灵活可控)

Python 解释器提供-B参数(Bytecode 禁用),运行脚本时添加该参数可阻止生成.pyc文件和__pycache__目录。
 
在 PyCharm 中配置步骤
 
  1. 打开运行 / 调试配置:点击顶部菜单栏Run → Edit Configurations
  2. 在左侧选择你要运行的脚本配置(如main.py);
  3. 在右侧Interpreter options(解释器选项)中输入-B
  4. 点击Apply保存,之后运行该脚本时将不再生成__pycache__
 
(效果:仅对当前配置的脚本生效,不影响其他项目或脚本)

方法 2:设置环境变量PYTHONDONTWRITEBYTECODE(全局生效)

通过设置环境变量PYTHONDONTWRITEBYTECODE=1,可全局禁用 Python 的字节码生成功能。【这个可行】
 
配置方式
 
  • 系统级全局生效(适用于所有项目):
    • Windows:右键 “此电脑”→“属性”→“高级系统设置”→“环境变量”,新建系统变量PYTHONDONTWRITEBYTECODE,值设为1
    • macOS/Linux:在终端执行export PYTHONDONTWRITEBYTECODE=1(临时生效),或写入~/.bashrc/~/.zshrc(永久生效)。
  • PyCharm 项目级生效(仅当前项目):
     
    打开运行配置(同方法 1),在Environment variables中点击+,添加变量PYTHONDONTWRITEBYTECODE,值设为1

方法 3:删除已有目录并添加到.gitignore(仅隐藏 / 忽略,不阻止生成)

如果只是想避免__pycache__被版本控制(如 Git)跟踪,或减少视觉干扰,可:
 
  1. 手动删除已有__pycache__目录(直接删除即可,不影响代码运行);
  2. 在项目根目录创建.gitignore文件,添加一行__pycache__/,让 Git 忽略该目录。

注意事项

  • 禁用__pycache__会导致 Python 每次运行都重新编译源码,可能略微降低启动速度(尤其是大型项目),开发阶段影响较小,生产环境建议保留。
  • 若后续需要恢复生成,只需移除-B参数或删除对应环境变量即可。
http://www.jsqmd.com/news/42131/

相关文章:

  • 20232325 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • 12.docker swarm - 指南
  • 山东大学 计算机图形学实验 二维网格剖分 Catmull-Clark算法
  • 从Ubuntu安装Harbor故障到了解AppArmor 与 Seccomp的思考
  • 什么是“组态路径”?
  • 2025年11月防冻液厂家推荐榜:五家对比与性能评价一览
  • 深入探索剖析 JVM 的启动过程
  • noip8多校2
  • 2025年11月防冻液厂家推荐排行:五家实力对比与选购指南
  • 2025年11月防冻液厂家推荐对比:五家资质与性能全维度排行
  • 2025年11月防冻液厂家推荐榜:五家主流对比与选购指南
  • 2025年11月冷媒剂厂家榜单:五强技术参数与口碑对比评测
  • 2025年11月载冷剂厂家推荐榜:技术资质与口碑综合评测
  • 一对一 WebRTC 视频聊天
  • 2025年11月载冷剂厂家推荐榜:五强真实数据与场景化选型指南
  • 2025年11月载冷剂厂家榜单:性能参数与口碑综合评测
  • 20232313 2025-2026-1 《网络与系统攻防技术》实验五实验报告 - 20232313
  • 【第7章 I/O编程与异常】Python文件操作与上下文管理器的深度解析(避坑指南)
  • 2025年11月乙二醇厂家对比榜:五家主流厂商真实数据与选型要点
  • 2025年11月乙二醇厂家对比榜:五强产品性能与合规资质全盘点
  • 工业级时序数据库选型指南:技巧架构与场景化实践
  • springboot生成前后端接口文档 - f
  • 20232429 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • P5797 [SEERC 2019] Max or Min
  • make
  • Spring Cloud - Spring Cloud 注册中心与服务提供者(Spring Cloud Eureka 概述、微服务高效入门、微服务应用实例)
  • DateUtil
  • (链表)找单链表倒数第k个结点
  • (链表)判断是否回文
  • 和为定值的子集数 25-11-16