是否可以从 .py 文件生成的 .pyc 文件中获取一些信息?
原文由 Howard 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否可以从 .py 文件生成的 .pyc 文件中获取一些信息?
原文由 Howard 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
尝试的工具
Uncompyle6 适用于 Python 3.x,但有一些错误,适用于 2.7。
如果这不起作用,请尝试 decompyle3 ,这是 Uncompyle6 的一个分支,它在 3.7 及更高版本上效果更好(根据 Uncompyle6 的作者)。
如果您仍有问题,请检查
uncompyle6
和decompyle3
自述文件,它们链接到可能更适合您的代码的其他工具。限制
您可以取回您的代码,包括变量名和文档字符串,但没有注释。
某些代码可能无法成功反编译,特别是在异常控制流或较新的 Python 3.x 版本的情况下。这是由于这些反编译器中的错误,其中 Python 随着时间的推移改变了它的字节码。
改进这些工具
如果需要,请为这些项目提出 GitHub 问题——两者都在一系列 Python 版本上运行单元测试套件。
资金显然限制了在
uncompyle6
和decompyle3
中支持更新的 Python 版本(3.7 以后)——发送捐款会有所帮助。防止将来丢失代码
有关可能适用于您的编辑器或 IDE(包括 VS Code 和 PyCharm)的一些提示,请参阅 此答案。