2010-03-13 97 views
5

我需要將已編譯的Python代碼(.pyo)轉換爲其源代碼。我在depython.net看,但有一個問題。一個警告;如何從.pyo文件恢復源代碼python代碼(.py)?

「文件版本比2.4以上。」

我該怎麼辦?

謝謝。

+1

如果這是您自己的代碼,那麼將來使用版本控制系統! – 2010-03-13 15:42:29

回答

1

嘗試decompyle

這已成爲一個商業服務。
要試驗它,你可以使用Debian Packages

我也很想嘗試,但我是一個Windows機器上。我會盡快嘗試一下。

+0

我無法理解DebianPackages方法。我也使用Windows,所以我需要一個像VMware這樣的虛擬工作站,但它非常複雜。我無法擺脫它。 還有其他方法嗎?任何知道反編譯的人,如果你能幫助我,我真的很感激。 謝謝。 – celka 2010-03-13 14:57:34

+0

在Sun Virtual盒子上試試Ubuntu。它的免費和它的作品和它的簡單:) – 2010-03-13 15:28:02

+0

我會嘗試。感謝你的關心。我希望,我會這樣做。祝你有愉快的一天:) – celka 2010-03-13 17:23:11

1

Decompile,名聲便宜(但您可以在線測試)depythonUnPyc項目(僅用於2.5 < =)。 here也是與此相關的另一個SO-Question。

我希望它有幫助。

6

嘗試這些:

uncompyle2轉換Python的字節碼回相當於Python源代碼。它接受從Python 2.5到2.7的字節碼。另外,它只能在Python 2.7上運行。

uncompyle6把Python字節碼回等效Python源代碼。它接受從Python版本1.53.7左右的字節碼,包括Pypy生成的字節碼。該代碼需要Python 2.4或更高版本,並且已在Python運行版本2.4, 2.5, 2.6, 2.7, 3.2, 3.3, 3.4, 3.5 and 3.6上進行了測試。

+0

我有同樣的問題,這有助於。該文檔有點誤導,主要討論.pyc文件,但它與我的.pyo文件很好地工作。 – Arjun 2016-06-13 23:36:16

+1

@Arjun,我更新了答案,以支持Python的3 – 2016-06-14 10:03:21

+0

@Arjun:當你寫「該文檔是有點誤導,大多談到.pyc文件」,如果你能指出我在那裏誤導你,我會修改。或者更好,建議修改。 – rocky 2016-07-16 15:38:53