Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > pyd & pyo


Автор: Romikgy 17.8.2007, 13:00
Я не силен в питоне , и вообще очень мало его знаю,
но по работе понадобилось разобратся с проектом написанным на питоне,
и вот вопрос в папке с прогой есть файлы типа pyd и pyo ?
я так понимаю последние это типа что то объектные,
так вот вопрос , можно ли эти файлы преобразовать в исходный текст питона?

Автор: Void 17.8.2007, 13:26
.pyd — это модули, написанные на Си.
.pyo — модули, скомпилированные в байткод. Отличаются от .pyc оптимизациями, но в текущей версии Питона отличия пренебрежимо малы. Восстановить исходный код можно. Есть платный сервис http://www.crazy-compilers.com/decompyle/. В дебиановских пакетах есть, по-видимому, последняя его бесплатная версия, но она не работает с Python 2.4 и новее. Вполне вероятно, что существуют средства и поновее.

Автор: pythonwin 17.8.2007, 15:57
а зачем обратно переделывать в исходники?
если нужно просто использовать, то можно импортировать и help, print, pprint.pprint и dir в помощь.

Автор: Romikgy 18.8.2007, 15:15
мне нужны алгоритмы из этих исходников, проект этот опен сорсе, можно с сайта взять исходники,  но сама прога с байт кодами уже на машине стоит, и мне проще взять исходники из байт кодов, 
так что плз где взять декомпилятор для питона?

ОС вин ХР

спасибо за ответы

Автор: Void 18.8.2007, 15:59
Romikgy, как-то это по меньшей мере странно звучит. У вас что там, интернет по диалапу 2400 бит/с? В противном случае декомпилировать совсем не проще.
Во-первых, декомпиляция не восстановит комментарии к исходникам, кроме doc strings, — а это, я так думаю, для понимания алгоритма немаловажно.
Во-вторых, единственный известный рабочий декомпилятор я уже назвал: http://www.crazy-compilers.com/decompyle/. Он платный. Бесплатная версия работает с байткодом не новее Python 2.3. Неважно, используются фичи новых версий или нет, с байткодом, скомпилированным >= 2.4, работать не будет. Где взять её исходники, кроме как в дебиановских пакетах, не знаю. Могу проверить работоспособность на WinXP и выслать, вроде там ничего такого платформозависимого нет.

UPD Пардон, слона, то есть http://sourceforge.net/projects/decompyle/ на SF.net, я и не приметил.

Автор: Romikgy 18.8.2007, 17:52
Цитата(Void @  18.8.2007,  14:59 Найти цитируемый пост)
У вас что там, интернет по диалапу 2400 бит/с?

это важно разве? нет побыстрее немного  smile 
Цитата(Void @  18.8.2007,  14:59 Найти цитируемый пост)
Во-первых, декомпиляция не восстановит комментарии к исходникам, кроме doc strings, — а это, я так думаю, для понимания алгоритма немаловажно.

общий алгоритм я знаю, мне нужны тонкости!

Цитата(Void @  18.8.2007,  14:59 Найти цитируемый пост)
Python 2.3

проект в этой версии
Цитата(Void @  18.8.2007,  14:59 Найти цитируемый пост)
Могу проверить работоспособность на WinXP и выслать, вроде там ничего такого платформозависимого нет.

если не сложно
Цитата(Void @  18.8.2007,  14:59 Найти цитируемый пост)
 Пардон, слона, то есть проект decompyle на SF.net, я и не приметил.

пасибки ща посмотрю

Автор: Void 18.8.2007, 20:47
Цитата(Romikgy @  18.8.2007,  19:52 Найти цитируемый пост)
это важно разве? нет побыстрее немного

Тогда почему проще декомпилировать байткод, чем скачать исходники? Решительно не понимаю.

Распаковать архив с сурсфоржа и выполнить setup.py install. Потребуется компилятор Си: либо VC++ той версии, с которой был собран питон (6.0 или 2003, скрипт сам скажет, если не найдёт), либо MinGW.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)