How to decompile EXE generated from Python

It depends on if the code was generated with py2exe or pyinstaller.

For py2exe, you can use unpy2exe or decompile-py2exe. I didn’t use those in the end because my exe was a PyInstaller one.

For PyInstaller, use pyinstxtractor.

After using that, I got out a bunch of pyd files for builtin modules, and a pyc file for the main script. You can decompile the pyc file with uncompyle6 or decompyle3, but I used the free online service pylingual.io which worked really well.