说说pwntools安装完后,import pwn时出现的ImportError:cannot import name ENUM_P_TYPE

闲来无事,装个kali玩玩,结果,遇到的坑真是一步接一步,今天说说import pwn时,出现苦逼的ImportError:cannot import name ENUM_P_TYPE,*“No picture,you say a j8”*上图:
说说pwntools安装完后,import pwn时出现的ImportError:cannot import name ENUM_P_TYPE
类似以上什么不能导入name XXX的稀奇古怪的问题,我一个菜鸡哪里知道,于是试遍各大搜索引擎,终于在一篇满是英文的网站找到了这个问题的描述,好心的我给你们贴上链接:https://github.com/Gallopsled/pwntools/issues/1189
github就是强大,我感动的痛哭流涕,不枉费我的一片苦苦查找。在这里我了解到了一个东西:pyelftools,具体是什么,恕在下无能,我没查到。
如果知道的话,欢迎评论留言,感激不尽。
在github里面关于ImportError问题,给出了答案,如果我没翻译错的话,有两种改法;
1.找到错误的目录,修改文件里的源码,将ENUM_P_TYPE改为ENUM_P_TYPE_BASE,我的那个elf.py文件目录如下,(每个人大概差不多):/usr/local/lib/python2.7/dist-packages/pwntools-3.14.0.dev0-py2.7.egg/pwnlib/elf/elf.py
在这个py文件里,修改55行1749行的ENUM_P_TYPE,改为ENUM_P_TYPE_BASE,(具体的行数可能有出入,相差几行左右)。
是的,有人用这种方法成功了,但是,不是我。就当我,满心欢喜的时候,又出现了另一个导入错误。所以我用了第二种方法,
2.reduce your pyelftools version to 0.24
我还不清楚pyelftools是什么,就让我把他的版本降到0.24版本,
首先,这个文件在哪?怎么降低(当然我采用的是删了现有版本,下个0.24版本的)
我的pyelftools路径如下:
/usr/local/lib/python2.7/dist-packages/pyelftools-0.25(没错原来是0.25的)
然后我搜索了一波,找到了pyelftools的下载地址

说说pwntools安装完后,import pwn时出现的ImportError:cannot import name ENUM_P_TYPE
那个pip install pyelftools==0.2x,就是linux下的安装的命令,点击Release history就可以查看以往的历史版本。替换之后,我高兴的import pwn测试了一下,结果,留下了悲伤的泪水,还是错误,
说说pwntools安装完后,import pwn时出现的ImportError:cannot import name ENUM_P_TYPE
我又紧接着换了0.23的版本,
说说pwntools安装完后,import pwn时出现的ImportError:cannot import name ENUM_P_TYPE
没错,成功了,没错,成功了,没错,成功了。
说说pwntools安装完后,import pwn时出现的ImportError:cannot import name ENUM_P_TYPE