{"id":21115,"library":"decompyle3","title":"decompyle3","description":"Python cross-version byte-code decompiler targeting Python 3.7-3.8 bytecode. Current version is 3.9.3 (2025). Releases are sporadic, roughly once per year. Requires xdis (6.x) and spark-parser. Supports running on CPython up to 3.13 but only decompiles bytecode up to 3.8.","status":"active","version":"3.9.3","language":"python","source_language":"en","source_url":"https://github.com/rocky/python-decompile3/","tags":["decompiler","bytecode","Python 3","reverse-engineering"],"install":[{"cmd":"pip install decompyle3","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Required for bytecode disassembly and interpretation","package":"xdis","optional":false},{"reason":"Required for parsing decompiled tokens","package":"spark-parser","optional":false}],"imports":[{"wrong":"from decompyle3 import decompile","symbol":"decompile_file","correct":"from decompyle3 import decompile_file"}],"quickstart":{"code":"from decompyle3 import decompile_file\nimport sys\n# Decompile a .pyc file and print source\nout = sys.stdout\nwith open('example.pyc', 'rb') as fp:\n    decompile_file(out, fp)\n","lang":"python","description":"Decompile a .pyc file to stdout. Requires Python 3.7-3.8 bytecode."},"warnings":[{"fix":"Use uncompyle6 for Python 2.7-3.8, or try pycdc/decompyle3-fork for newer bytecode.","message":"decompyle3 only decompiles Python 3.7 and 3.8 bytecode. It cannot decompile bytecode from Python 3.9+.","severity":"breaking","affected_versions":"all"},{"fix":"Use a virtual environment to isolate decompyle3 from other projects with different xdis requirements.","message":"The package requires xdis version 6.x, which may conflict with other tools that require xdis 5.x or 4.x.","severity":"gotcha","affected_versions":">=3.8.0"},{"fix":"Install and run `decompyle3 filename.pyc`.","message":"Command-line tool is `decompyle3`, not `decompyle`. Running `decompyle` will fail with 'command not found'.","severity":"gotcha","affected_versions":"all"},{"fix":"Install uncompyle6 for Python 2 decompilation.","message":"Support for Python 2.x has been removed. Use uncompyle6 for Python 2.7.","severity":"deprecated","affected_versions":">=3.0"}],"env_vars":null,"search_vec":"'-3.8':13 '2025':19 '3':52 '3.13':41 '3.7':12 '3.8':48 '3.9.3':18 '6':29 'byte':7 'byte-cod':6 'bytecod':14,45,50 'code':8 'cpython':38 'cross':4 'cross-vers':3 'current':15 'decompil':9,44,49 'decompyle3':1 'engin':55 'parser':34 'per':25 'python':2,11,51 'releas':20 'requir':27 'revers':54 'reverse-engin':53 'rough':23 'run':36 'spark':33 'spark-pars':32 'sporad':22 'support':35 'target':10 'version':5,16 'x':30 'xdis':28 'year':26","created_at":"2026-04-27T16:58:10.287269+00:00","updated_at":"2026-04-27T16:58:10.287269+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"3.9.3","cli_name":"decompyle3","cli_version":"/usr/local/lib/python3.11/site-packages/click/core.py:1252: UserWarning: The parameter --version is used more than once. Remove its duplicate as parameters should be unique.","type":"library","homepage":null,"github":"https://github.com/rocky/python-decompile3","docs":null,"changelog":null,"pypi":"https://pypi.org/project/decompyle3/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["serialization","data"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-30","last_verified":"2026-06-30","next_check":"2026-07-30","install_tag":null}}