When you install or run Python-based tools on Arch Linux — especially from the AUR — you might notice that your system accumulates a lot of __pycache__ directories. These are generated when Python byte-compiles modules, but they aren’t always removed when you uninstall a package.
In this short guide, we’ll walk through how to identify and optionally clean up those __pycache__ directories — specifically the ones not owned by any package — and exclude system paths like Flatpak while we're at it.
Why Does This Happen?
Tools installed via the AUR (like waydroid-scripts-git, for example) might drop files under /opt, /usr/local, or other places. These files (especially .py and __pycache__) might not be tracked by pacman, so even after uninstalling the tool, leftover Python cache directories can remain.
  
  
  Finding Unowned __pycache__ Directories
Here’s a one-liner that will:
- Search your system for all 
__pycache__directories - Skip the Flatpak directory (
/var/lib/flatpak) - Check whether each is owned by any package
 - Print only the ones that are not owned
 
find / -type d -name '__pycache__' -not -path '/var/lib/flatpak/*' 2>/dev/null | while read dir; do
  pacman -Qo "$dir" &>/dev/null || echo "Not owned: $dir"
done
Output Example
Not owned: /opt/waydroid-scripts/tools/__pycache__
Not owned: /usr/local/lib/python3.11/site-packages/some_tool/__pycache__
Conclusion
__pycache__ directories aren't dangerous, but they can accumulate and clutter your system — especially in directories that aren’t cleaned by package managers. With a few commands, you can find and clean up these leftovers safely, keeping your system neat and under control.
Have your own cleanup tricks? Share them in the comments!
    
Top comments (0)