What is __pycache__ and what happens if you delete it?

Emre Çitak
Sep 7, 2023

Python programming can be tricky and you might have come across a mysterious folder named "__pycache__" in your project directory.

What is this folder, and why does it appear?

Let us demystify the purpose of the "__pycache__" folder and shed light on its significance in Python development.

What is __pycache__
__pycache__ is a special folder automatically created by Python - Image courtesy of Python

What is __pycache__?

The "__pycache__" folder is a directory automatically generated by Python when you run a Python script or import a module. Its primary function is to store bytecode files (.pyc) that contain compiled Python code.

Python is an interpreted language, but before executing your code, it compiles it into bytecode for improved performance. These bytecode files are saved in the "pycache" folder to speed up future imports of the same module.

This means that when you run your Python script or import a module, Python first checks if a corresponding bytecode file exists in "pycache." If it does, Python will use the bytecode for execution, which is faster than recompiling the source code.

Read alsoPY function: How to use Python in Excel.

Why is __pycache__ Important?

The "__pycache__" folder serves two important purposes:

  • Performance: Storing bytecode in the "__pycache__" folder speeds up the execution of your Python programs. It reduces the overhead of recompiling the source code every time you run a script or import a module
  • Compatibility: "__pycache__" ensures compatibility between different Python versions. If you have multiple Python installations or switch between Python 2 and Python 3, the bytecode in "__pycache__" is version-specific. This prevents conflicts and ensures that the right bytecode is used with the corresponding Python interpreter
What is __pycache__
The purpose of __pycache__ is to improve the performance of Python programs

Should You Delete __pycache__?

You may wonder whether it's safe to delete the "__pycache__" folder. In most cases, it's entirely safe, as Python will recreate it as needed.

However, there are some scenarios where you might want to keep it:

  • Development: During development, it's convenient to keep "__pycache__" to benefit from faster module imports. Deleting it won't harm your code, but it might slow down imports temporarily until Python recreates the bytecode files
  • Deployment: When deploying your Python code, you can safely omit the "pycache" folder. It won't affect your production environment, and it can save space

So, "__pycache__" is a behind-the-scenes helper in Python that enhances the performance and compatibility of your code. It automatically stores compiled bytecode, making your Python programs run faster.

While you can delete it without harm during development or deployment, it's a valuable asset for smoother Python development and execution.


Tutorials & Tips

Previous Post: «
Next Post: «


There are no comments on this post yet, be the first one to share your thoughts!

Leave a Reply

Check the box to consent to your data being stored in line with the guidelines set out in our privacy policy

We love comments and welcome thoughtful and civilized discussion. Rudeness and personal attacks will not be tolerated. Please stay on-topic.
Please note that your comment may not appear immediately after you post it.