Можно ли декомпилировать скомпилированный файл .pyc в файл .py? - PullRequest
147 голосов
/ 13 марта 2011

Можно ли получить некоторую информацию из файла .pyc, сгенерированного из файла .py?

Ответы [ 7 ]

138 голосов
/ 11 февраля 2013

Uncompyle6 работает для Python 3.x и 2.7 - рекомендуемый вариант, так как это самый последний инструмент, нацеленный на объединение более ранних форков и сосредоточенный на автоматическом тестировании. Страница GitHub содержит более подробную информацию.

Более старый Uncompyle2 поддерживает только Python 2.7. Некоторое время назад это помогло мне декомпилировать байт-код .pyc в .py, тогда как unpyclib вылетел за исключением.

30 голосов
/ 18 апреля 2011

Да, вы можете получить его с помощью unpyclib, который можно найти на pypi .

$ pip install unpyclib

Чем вы можете декомпилировать ваш файл .pyc

$ python -m unpyclib.application -Dq path/to/file.pyc
27 голосов
/ 20 февраля 2014

Вы можете попробовать Easy Python Decompiler . Он основан на Decompyle ++ и Uncompyle2. Он поддерживает декомпиляцию версий Python 1.0-3.3

Примечание: я являюсь автором вышеуказанного инструмента.

12 голосов
/ 27 марта 2013

Декомпайл ++ (pycdc) был единственным, который работал для меня: https://github.com/zrax/pycdc

было предложено в Декомпилировать Python 2.7 .pyc

3 голосов
/ 17 июля 2016

Да, это возможно.

Существует идеальный декомпилятор Python (.PYC) с открытым исходным кодом, называемый Decompyle ++ https://github.com/zrax/pycdc/

Цель Decompyle ++ - преобразовать скомпилированный байт Python-код обратно в действительный и понятный человеку исходный код Python.В то время как другие проекты достигли этого с переменным успехом, Decompyle ++ уникален тем, что стремится поддерживать байт-код из любой версии Python.

0 голосов
/ 09 августа 2018

Установка с использованием pip install pycompyle6

pycompyle6 filename.pyc

0 голосов
/ 13 марта 2011

Понятия не имею, хорошо ли это, но быстрый поиск в Google оказался декомпилировать .

...