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
5 Answers
In case anyone is still struggling with this, as I was all morning today, I have found a solution that works for me:
Installation instructions:
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.

- 2,924
- 3
- 22
- 24
-
5Saved my bacon! I'll be adding it to my virtualenvs from now on... – kaleissin Jun 28 '12 at 10:01
-
5Saved my bacon too. I was such a genius running rm *.py to cleanup my pyc files before commiting to git. But at least it left me with my .pyc files in a beautiful bit of irony. – Eloff Aug 20 '12 at 20:46
-
2@Eloff A .gitignore file containing *.pyc would be easier than having to be mindful about deleting *.pyc before each commit! Could be that you know that and are mildly obsessive about having a clean environment though, as many programmers tend to be :D – Milosz Aug 28 '12 at 17:03
-
2Thanks for sharing this. Had to convince my boss that its not worth it to hide .py code files.. Now he's believing me ;). – Prine Dec 06 '12 at 12:18
-
1another soul saved here! – daigorocub Feb 08 '13 at 14:28
-
1Recommend the uncompyle2 fork of this 0 works on Python 2.7 for me: https://github.com/wibiti/uncompyle2 – RichVel Feb 11 '13 at 08:30
-
I know it's a meaningless comment -- but a "thank you!!" from me as well ) – ジョージ Jun 05 '13 at 08:13
-
Does this support Python 3? – Samuel Katz Jun 09 '13 at 11:56
-
1@SalmanPK no, unfortunately this was written for Python 2.7 exclusively. Someone here is working on a Python 3 decompiler, but it is still experimental: https://code.google.com/p/unpyc3/ – Milosz Jun 17 '13 at 18:33
-
This saved me from an online course's ridiculous way of asserting that you've set up your environment correctly. They bundled a PYC file to make sure you couldn't read the source code to make sure numpy and matplotlib are installed! Clever, but annoying. – Asim Ihsan Mar 06 '14 at 18:25
-
Online version of this decompiler is available here: http://www.javadecompilers.com/pyc – Andrew Rukin Jul 17 '16 at 09:25
Decompyle++ (pycdc) appears to work for a range of python versions: https://github.com/zrax/pycdc
For example:
git clone https://github.com/zrax/pycdc
cd pycdc
make
./bin/pycdc Example.pyc > Example.py
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
UPDATE (2013-09-03) - As noted in the comments and in other answers, you should look at https://github.com/wibiti/uncompyle2 or https://github.com/gstarnberger/uncompyle instead of unpyc.

- 32,629
- 8
- 45
- 88
-
1Even after applying the patch in issue 8, I can't get this to work with Python 2.7. – Michael Hoffman Nov 18 '11 at 21:57
-
1
-
I've down-voted the answer because it doesn't work with python 2.7 – Sam Stoelinga Apr 03 '13 at 07:20
-
Yeah...even their own site says that it's broke. I wouldn't have posted it if I'd known that. Sorry! – Mike Driscoll Apr 03 '13 at 13:18
-
1
-
only https://github.com/wibiti/uncompyle2 works for me(`ubuntu17.04`,`python2.7.13`) – Cheney Jul 26 '17 at 04:32
-
2`uncompyle6` is a more up to date tool, supporting Python 2.7 and 3.x - see [this answer](https://stackoverflow.com/a/14808336/992887) for more – RichVel Apr 21 '19 at 06:18
-
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++

- 3,441
- 2
- 39
- 55
-
4
-
1The source code is not available on SourceForge, so I'll ignore this tool for now. – Bludzee Aug 11 '14 at 11:10
-
Very handy tool! Decompiled my Python 2.7 file without any problems under wine on Linux Mint – sly Mar 30 '16 at 08:01
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 moddate
).
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.

- 32,526
- 7
- 64
- 86