2013-05-12 72 views
7

我試圖編譯一些pyc文件 - 只需從他們的一些基本數據,我聽說最適合這將是Uncompyle2,的Python> Uncompyle2 - 使用

所以我安裝Python27(贏),然後我從https://github.com/wibiti/uncompyle2安裝了Uncompyle2 - 現在一切正常,現在我嘗試瞭解如何使用它,自述文件說我需要編寫uncompyle2 --h以獲得更多幫助,我在收到此「未定義」消息後,接下來我試圖在翻譯器中通過import uncompyle2導入腳本,我認爲模塊已加載(我在解釋器中輸入uncompyle2它說,它從__init__加載了函數),但仍然無法獲得它的任何功能來獲得工作,如果我嘗試做任何它說「語法錯誤」(即使我typ Ë一切從自述)和--h就像也不管用,

我做錯了嗎?

順便說一句,我試圖找到一些網上的轉換器,但由於INT的2.6.4編譯的Python文件,我無法找到任何東西,也可以使用它。

+0

在Python解釋器中。對於Windows,您可能需要編輯'PATH'變量(google it)以包含安裝uncompyle2的文件夾。 – 2013-05-12 15:01:35

回答

12

從IDLE

import uncompyle2 
with open("uncompiled file.py", "wb") as fileobj: 
    uncompyle2.uncompyle_file("afile.pyc", fileobj) 

結果應該是你未編譯源代碼。

編輯18年2月15日

爲Python 3使用uncompyle 6和 「W」 模式打開輸出文件(不是 「WB」)

import uncompyle6 
with open("uncompiled file.py", "w") as fileobj: 
    uncompyle6.uncompyle_file("afile.pyc", fileobj) 
+0

你是一個救生員:) – 2017-03-28 16:47:54

+0

我得到'TypeError:一個類似字節的對象是必需的,而不是'str''上uncompyle6 python 3 – chandru 2018-02-15 09:07:52

+0

@chandru更新答案爲py3兼容性 – user2682863 2018-02-15 16:04:07

1

從您的命令行運行(例如PowerShell),如果您將Python安裝到C:\ Python,您需要在腳本中運行腳本uncompyle2,可能是在C:\ Python \ Scripts中。這將反編譯文件somefile.pyc並創建在c文件decompiled.py:\ temp中

PS C:\ Python的\腳本>蟒\ uncompyle2 -OC:\ TEMP \ decompiled.py somefile.pyc

1

我只是添加到接受的答案做這一切從同一目錄,我試圖從其他地方運行時,我得到一個空的uncompiled file.py文件夾。整個腳本

import os 

#this should be /folder_where_py_filtes_were/__pycache__/ in python3 
os.chdir("C:\Dir where my pyc is") 
import uncompyle2 
with open("uncompiled file.py", "wb") as fileobj: 
    uncompyle2.uncompyle_file("afile.pyc", fileobj) 

除此之外,你的男人user2682863!救了我的項目

+0

它將與python3 – chandru 2018-02-15 09:08:48

+0

是的,只是確保你uncompyle從/ __ pycache __/ – 2018-02-15 18:37:39

+0

LMK怎麼回事,我還沒有實際測試它在3 – 2018-02-15 18:39:49

0

剛試的版本在https://github.com/wibiti/uncompyle2

但沒有得到進口。我有搜索庫,發現它已經被重新命名......所以這是爲我工作的代碼:你應該在你的終端輸入`uncompyle2 --h`,不

import uncompyle6 
with open("uncompiled file.py", "wb") as fileobj: 
    uncompyle6.uncompyle_file("yourpycfile.pyc", fileobj) 
+0

我越來越TypeError:一個類似字節的對象是必需的,而不是'str'在uncompyle6 for python 3 – chandru 2018-02-15 09:10:09