guppy3
Guppy 3 -- Guppy-PE ported to Python 3
What it is and what it does
Guppy 3 is a heap analysis and memory profiling toolkit for CPython that lets you inspect live Python objects, understand memory allocation patterns, and track down memory leaks. It provides an interactive session interface where you create a heap analysis context, query the heap to see object counts and sizes grouped by type, and trace paths from the root to individual objects. The package includes submodules for bitsets implemented in C, a specification language, and support utilities.
The tool is designed for developers debugging memory issues in Python applications. It works by examining the live heap state and presenting partitions of objects with cumulative size analysis, making it practical for identifying which types consume the most memory. It requires CPython 3.10 or later and does not support PyPy or free-threaded CPython due to implementation constraints.
Use it for:
- Identify which object types consume the most memory in a running Python application.
- Trace reference chains from the garbage collector root to specific large objects.
- Profile memory usage in long-running services to detect unexpected growth patterns.
- Debug memory issues in framework-based applications by inspecting heap state at runtime.
- Analyze object allocation patterns during development to optimize memory-intensive code.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Guppy 3 analyzes Python heap memory to identify object allocations, memory usage patterns, and potential leaks through interactive heap inspection and reporting.
Yes, if you need to debug Python memory issues or profile heap usage in CPython applications. The package is actively maintained, has no known vulnerabilities, and carries a permissive MIT license. Install friction is moderate due to compiled extensions, but pre-built wheels cover common platforms. Not suitable if you use PyPy, free-threaded CPython, or Python versions below 3.10.
Install
guppy3 on PyPI
pip
pip install guppy3uv
uv add guppy3poetry
poetry add guppy3Installing guppy3
Before you install
Medium install friction due to compiled C extensions across multiple platforms and architectures. The package is actively maintained with a recent release (95 days ago) and receives steady downloads, though it requires CPython 3.10 or later and does not support PyPy or free-threaded CPython.
License in practice
MIT license permits free use, modification, and redistribution with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install guppy3
from guppy import hpy
h = hpy()
h.heap()
h.iso(1, [], {})
Requires CPython 3.10, 3.11, 3.12, 3.13, or 3.14; PyPy and free-threaded CPython are not supported. Tkinter is needed for the graphical browser.
Verify before relying
- Whether the graphical browser is actively used or primarily a legacy feature
- Performance overhead and suitability for production vs. development-only use
- Practical memory profiling workflow and typical use patterns in real applications
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 95 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,382,674/month — #3,980 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: guppy3-3.1.7-cp310-cp310-macosx_10_9_x86_64.whl; guppy3-3.1.7-cp310-cp310-macosx_11_0_arm64.whl; guppy3-3.1.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; guppy3-3.1.7-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl; guppy3-3.1.7-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl; guppy3-3.1.7-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl; guppy3-3.1.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; guppy3-3.1.7-cp310-cp310-musllinux_1_2_aarch64.whl; guppy3-3.1.7-cp310-cp310-musllinux_1_2_armv7l.whl; guppy3-3.1.7-cp310-cp310-musllinux_1_2_ppc64le.whl; guppy3-3.1.7-cp310-cp310-musllinux_1_2_s390x.whl; guppy3-3.1.7-cp310-cp310-musllinux_1_2_x86_64.whl; guppy3-3.1.7-cp310-cp310-win32.whl; guppy3-3.1.7-cp310-cp310-win_amd64.whl; guppy3-3.1.7-cp310-cp310-win_arm64.whl; guppy3-3.1.7-cp311-cp311-macosx_10_9_x86_64.whl; guppy3-3.1.7-cp311-cp311-macosx_11_0_arm64.whl; guppy3-3.1.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; guppy3-3.1.7-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl; guppy3-3.1.7-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl
Tags
More Debuggers packages
Extracts and displays stack frame and traceback…
permissive · top 1,000 on PyPI
debugpydebugpy is a Debug Adapter Protocol…
permissive · top 1,000 on PyPI
pylintPylint is a static code analyzer that checks…
copyleft · top 1,000 on PyPI
yamllintyamllint checks YAML files for syntax errors,…
copyleft · top 1,000 on PyPI
ipdbipdb is an IPython-enabled debugger that…
permissive · top 5,000 on PyPI
memrayMemray is a memory profiler for Python that…
permissive · top 5,000 on PyPI
mozleakExtracts memory leaks from leak log files,…
copyleft · top 15,000 on PyPI
pyelftoolspyelftools parses and analyzes ELF binary files…
permissive · top 5,000 on PyPI
tunatuna visualizes Python performance profiles in…
copyleft · top 15,000 on PyPI
HeapDictHeapDict is a mutable mapping that acts as a…
permissive · top 15,000 on PyPI
scaleneScalene profiles Python code to measure CPU,…
permissive · top 15,000 on PyPI
PymplerPympler measures, monitors, and analyzes memory…
permissive · top 5,000 on PyPI
lizardLizard analyzes code complexity and detects…
permissive · top 5,000 on PyPI
snakevizSnakeViz is a web-based viewer for Python…
permissive · top 5,000 on PyPI
django-silkSilk intercepts and profiles HTTP requests,…
permissive · top 5,000 on PyPI
environManages stack-based global variables that can…
copyleft · top 15,000 on PyPI