I’ve searched up and down, but can’t find a de-compiler that will work for Python 2.7 .pyc. Does anybody know of one that will work for Python 2.7? Thanks
UPDATE (2019-04-22) – It sounds like you want to use uncompyle6 nowadays rather than the answers I had mentioned originally.
This sounds like it works: http://code.google.com/p/unpyc/
Issue 8 says it supports 2.7: http://code.google.com/p/unpyc/updates/list
In case anyone is still struggling with this, as I was all morning today, I have found a solution that works for me:
git clone https://github.com/gstarnberger/uncompyle.git cd uncompyle/ sudo ./setup.py install
Once the program is installed (note: it will be installed to your system-wide-accessible Python packages, so it should be in your
$PATH), you can recover your Python files like so:
uncompyler.py thank_goodness_this_still_exists.pyc > recovered_file.py
The decompiler adds some noise mostly in the form of comments, however I’ve found it to be surprisingly clean and faithful to my original code. You will have to remove a little line of text beginning with +++ near the end of the recovered file to be able to run your code.
Decompyle++ (pycdc) appears to work for a range of python versions: https://github.com/zrax/pycdc
git clone https://github.com/zrax/pycdc cd pycdc make ./bin/pycdc Example.pyc > Example.py
Here is a great tool to decompile pyc files.
It was coded by me and supports python 1.0 – 3.3
Its based on uncompyle2 and decompyle++
Ned Batchelder has posted a short script that will unmarshal a .pyc file and disassemble any code objects within, so you’ll be able to see the Python bytecode.
It looks like with newer versions of Python, you’ll need to comment out the lines that set
modtime and print it (but don’t comment the line that sets
Turning that back into Python source would be somewhat more difficult, although theoretically possible. I assume all these programs that work for older versions of Python do that.