是否可以将已编译的 .pyc 文件反编译为 .py 文件?

新手上路,请多包涵

是否可以从 .py 文件生成的 .pyc 文件中获取一些信息?

原文由 Howard 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答

尝试的工具

Uncompyle6 适用于 Python 3.x,但有一些错误,适用于 2.7。

  • 推荐的开始选项,因为它旨在统一早期的分支并专注于自动化单元测试。 uncompyle6 GitHub 页面 有更多详细信息。
  • 最适合早期的 3.x 版本,而不是 3.7+ 的最佳选择

如果这不起作用,请尝试 decompyle3 ,这是 Uncompyle6 的一个分支,它在 3.7 及更高版本上效果更好(根据 Uncompyle6 的作者)。

如果您仍有问题,请检查 uncompyle6decompyle3 自述文件,它们链接到可能更适合您的代码的其他工具。

限制

您可以取回您的代码,包括变量名和文档字符串,但没有注释。

某些代码可能无法成功反编译,特别是在异常控制流或较新的 Python 3.x 版本的情况下。这是由于这些反编译器中的错误,其中 Python 随着时间的推移改变了它的字节码。

改进这些工具

如果需要,请为这些项目提出 GitHub 问题——两者都在一系列 Python 版本上运行单元测试套件。

资金显然限制了在 uncompyle6decompyle3 中支持更新的 Python 版本(3.7 以后)——发送捐款会有所帮助。

防止将来丢失代码

有关可能适用于您的编辑器或 IDE(包括 VS Code 和 PyCharm)的一些提示,请参阅 此答案

原文由 RichVel 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题