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中文網其他相關文章!