Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Reverse Engineering Tools
  3. uncompyle6

uncompyle6

What it is

uncompyle6 is free, GPL-3.0-licensed software that translates Python bytecode into equivalent Python source code. It runs from the command line on compiled .pyc and .pyo files and can deparse code fragments or provide source information around a bytecode offset. The README says it accepts bytecode from Python 1.0 through 3.8, Dropbox Python 2.5 bytecode, and some PyPy bytecode. Its fragment capability is used in trepan debuggers to show source at runtime and add detail beyond a line number in stack traces. The --syntax-verify option checks decompiled syntax when paired with the matching bytecode version. Control-flow handling is identified as a major decompilation problem, and erroneous results may sometimes be detected and reported. The tool does not handle obfuscated code, Cython, or MicroPython, and cannot directly decompile Py2EXE executables. Python 3.11 and later install from PyPI with pip install uncompyle6; earlier versions use a GitHub Releases file.

For and against

For

  • Free and GPL-3.0 licensed
  • Supports Python bytecode decompilation
  • Provides fragment deparsing
  • Includes syntax verification
  • Offers a scripting API

Against

  • Control-flow handling can produce errors
  • Does not support obfuscated code
  • Does not handle Cython or MicroPython
  • Cannot directly decompile Py2EXE

The verdict

uncompyle6 focuses on recovering Python source from supported bytecode, with command-line and fragment-deparsing workflows. Its documented input exclusions and control-flow limitations matter when choosing it for decompilation work.

Who it suits

uncompyle6 is intended for developers working with Python bytecode and debugging tools. It suits users who need source reconstruction or fragment information from supported compiled files.

Plans and prices

Open-source software

Free

GPL-3.0 licensed Python bytecode decompiler

Every plan, in full

On the record

Bytecode versions
The README says it accepts bytecode from Python 1.0 through 3.8, plus Dropbox Python 2.5 bytecode and some PyPy bytecode.github.com · read 8 Oct 2026
Command line
The README shows running `uncompyle6` on compiled Python `.pyc` or `.pyo` files.github.com · read 8 Oct 2026
Debugger use
The maintainer says fragment deparsing is used in trepan debuggers to show source fragments at runtime.github.com · read 8 Oct 2026
Debugging use
The maker says fragment deparsing can help show stack traces with more detail than a line number and is used in the maker’s trepan debuggers.github.com · read 8 Oct 2026
Fragment decompilation
It can deparse code fragments and provide source information around a bytecode offset.github.com · read 8 Oct 2026
Installation
For Python 3.11 and later, the README instructs users to install from PyPI with `pip install uncompyle6`.github.com · read 8 Oct 2026
Intended audience
PyPI lists developers as the intended audience.pypi.org · read 8 Oct 2026
Known limitation
The README identifies control-flow handling as a major decompilation problem and says erroneous decompilations may sometimes be detected and reported.github.com · read 8 Oct 2026
License
The repository identifies the project as GPL-3.0 licensed.github.com · read 8 Oct 2026
Older Python installation
For Python versions before 3.11, the README directs users to install from a file in the GitHub Releases section.github.com · read 8 Oct 2026
Operating systems
PyPI classifies the package as operating-system independent.pypi.org · read 8 Oct 2026
Purpose
uncompyle6 translates Python bytecode into equivalent Python source code.github.com · read 8 Oct 2026
Support
The maintainer says bug reports may take a while to receive attention and that sponsoring or supporting the project can prioritize issues.github.com · read 8 Oct 2026
Syntax verification
The `--syntax-verify` option checks decompiled syntax when used with the matching Python bytecode version.github.com · read 8 Oct 2026
Unsupported inputs
The README says it does not handle obfuscated code, Cython, or MicroPython, and cannot directly decompile Py2EXE executables.github.com · read 8 Oct 2026
Version caveat
The README says Python 3.7 and 3.8 support is generally better in the related decompile3 project.github.com · read 8 Oct 2026
What it does
uncompyle6 translates Python bytecode back into equivalent Python source code.github.com · read 8 Oct 2026

Alternatives to uncompyle6

Every alternative, ranked