前言

uncompyle6 目前只支持Python 2.6-3.8 ,但是我们需要在高版本python使用他 所以可采用本教程

教程

环境:

Windows 11 专业版
Python 3.11.4

首先我们直接使用uncompyle6时会报错

Traceback (most recent call last):
File “”, line 198, in run_module_as_main File “”, line 88, in run_code File “C:\Users\Skaur\AppData\Local\Programs\Python\Python311-32\Scripts\uncompyle6.exe__main.py”, line 4, in
File “C:\Users\Skaur\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\uncompyle6__init__.py”, line 53, in
import uncompyle6.semantics.pysource
File “C:\Users\Skaur\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\uncompyle6\semantics\pysource.py”, line 141, in
from uncompyle6.parsers.treenode import SyntaxTree
File “C:\Users\Skaur\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\uncompyle6\parsers\treenode.py”, line 3, in
from uncompyle6.scanners.tok import NoneToken
File “C:\Users\Skaur\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\uncompyle6\scanners\tok.py”, line 200, in
NoneToken = Token(“LOAD_CONST”, offset=-1, attr=None, pattr=None)
File “C:\Users\Skaur\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\uncompyle6\scanners\tok.py”, line 86, in init
from xdis.std import _std_api
File “C:\Users\Skaur\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\xdis\std.py”, line 220, in
_std_api = make_std_api()
File “C:\Users\Skaur\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\xdis\std.py”, line 218, in make_std_api
return _StdApi(python_version, variant)
File “C:\Users\Skaur\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\xdis\std.py”, line 73, in init
self.opc = opc = get_opcode_module(python_version, variant)
File “C:\Users\Skaur\AppData\Local\Programs\Python\Python311-32\Lib\site-packages\xdis\op_imports.py”, line 174, in get_opcode_module
return op_imports[canonic_python_version[vers_str]]
~~~~~~^^^^^^^^^^
KeyError: ‘3.11.4’ `

KeyError:后的就是不支持的版本

我们来到Python目录下的"\Lib\site-packages\xdis"
找到文件magics.py找到方法add_canonic_versions
在最后一个add_canonic_versions 第一个参数中中加入我们当前的python版本
image-14.png
然后我们运行uncompyle6起来会发现仍然会报错
image-15.png
这个时候我们需要到uncompyle6目录下"\Lib\site-packages\uncompyle6\bin"
打开文件uncompyle6.py找到方法main_bin,加上我们需要支持的版本即可 如: (3, 11)
(注意空格)
image-17.png
这个时候我们再运行uncompyle6就发现不会报错了