Python 的编译过程会生成 .pyc 文件提高性能。虽然此步骤有助于优化代码执行,但它也提出了一个问题:您可以恢复此操作并检索原始 .py 文件吗?
Python 反编译是一个复杂的过程,特别是对于最近的 3.x 版本。尽管有可用的工具,但完整的代码恢复可能并不总是可行,特别是在复杂的控制流或最近的 Python 迭代的情况下。
为了获得最佳起点,请考虑以下工具:
<li>Works well up to Python 3.8, especially for 2.7</li> <li>Visit the <a href="https://github.com/rocky/uncompyle6">Uncompyle6 GitHub page</a> for more details</li>
<li>A fork of Uncompyle6 optimized for Python 3.7 and 3.8</li> <li>From the <a href="https://github.com/rocky/decompile3">rocky/decompile3</a> repo</li>
虽然反编译可以恢复变量名称和文档字符串,但注释将会丢失。此外,某些代码可能无法编译,并且由于字节码更改,较新的 Python 版本会带来明显的挑战。
Decompyle6 和 Decompyle3 目前缺乏对 Python 3.9 及更高版本的支持。此外,由于 Python 正在进行的优化工作,对 3.7 及以上版本的支持受到限制。
贡献者和资金对于这些项目的持续发展至关重要。
为了避免数据丢失,请实施定期 Git 提交和文件备份。另外,请考虑有助于文件恢复的编辑器/IDE 功能,如此答案中所述。
以上是## 你能从编译的 .pyc 文件中恢复 Python 代码吗?的详细内容。更多信息请关注PHP中文网其他相关文章!