1. 程式人生 > >說說pwntools安裝完後,import pwn時出現的ImportError:cannot import name ENUM_P_TYPE

說說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”*上圖: 類似以上什麼不能匯入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的

下載地址

那個pip install pyelftools==0.2x,就是linux下的安裝的命令,點選Release history就可以檢視以往的歷史版本。替換之後,我高興的import pwn測試了一下,結果,留下了悲傷的淚水,還是錯誤, 我又緊接著換了0.23的版本, 沒錯,成功了,沒錯,成功了,沒錯,成功了。