2010-03-13 121 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