从 pyinstxtractor 获取字节码后,我收到 Uncompyle6 和 Decompyle3 错误

问题描述 投票:0回答:2

我在尝试 Uncompyle6 时遇到此错误

uncompyle6 main.pyc
:


Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Scripts\uncompyle6.exe\__main__.py", line 4, in <module>

...更多lines

  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\xdis\std.py", line 73, in __init__
    self.opc = opc = get_opcode_module(python_version, variant)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\xdis\op_imports.py", line 174, in get_opcode_module
    return op_imports[canonic_python_version[vers_str]]
                      ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: '3.11.2'

所以,我尝试了 Decompyle3。然而,我遇到了同样的错误。我尝试了 Decompyle3,因为“它接受来自 Python 3.7 版本的字节码”。我正在使用 Python 3.11。

那么,如果这不起作用,那我该怎么办???

PS:还有其他软件可以做到这一点吗?我认为我的 Python 版本有问题。

windows bytecode decompiler python-3.11 uncompyle6
2个回答
3
投票

我在这里可能是错的,但我相信 KeyError: 3.11.2 意味着 decompyle6 不支持(至少还不支持)该版本的 python。我知道它可以工作到 python 3.8.x

您可以在此处查看更多信息:https://github.com/rocky/python-decompile3/issues/45


0
投票

将 pyenv 用于较旧的 python 版本,例如 3.7、3.8....,

pyenv install 3.8.0
。 现在可以全局或本地设置,
pyenv global 3.8.0
。 如果重新启动不起作用,现在要在终端上实现它,
source ~/.bashrc
。 检查,
python --version
。 最后安装uncompyle6,
pip install uncompyle6
。 现在为了让它发挥作用,
uncompyle6 _pycFileHere_
。 还有 BOOMMMMMMM!!!

© www.soinside.com 2019 - 2024. All rights reserved.