1. 程式人生 > 實用技巧 >[Python] 使用wordcloud時碰到記憶體錯誤munmap_chunk(): invalid pointer

[Python] 使用wordcloud時碰到記憶體錯誤munmap_chunk(): invalid pointer

用的IDE是Pycharm,呼叫wordcloud的時候碰到了記憶體錯誤的報錯,反覆執行後遇到不止這一種報錯,還有各種各樣的姿勢……

munmap_chunk(): invalid pointer
corrupted size vs. prev_size
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
malloc(): invalid next size (unsorted)

好像還有個interrupted by signal 6的,但是比較少見,沒複製到

有的時候還能成功,百度也百度不到,只能查出來是記憶體錯誤;使用斷點除錯也找不到原因……(可能是我太菜了)

於是去github上翻issue,在後排看到一個熟悉的字眼 Memory errors on Fedora 29 #516(跟Fedora系統應該並無關係),運氣不錯,這個issue裡大佬表示這個錯誤跟一個叫Pillow的包有關,回退到6.2.2版本就沒問題了

pip install --no-binary=Pillow Pillow==6.2.2 --force

有趣的是,提問的大哥描述的很撲朔迷離,他說import了兩個沒用的包以後就能正常運行了,我試了一下,真的是這樣,也不知道為什麼

# Bad example
from wordcloud import WordCloud
# Good example
import matplotlib.pyplot as plt # unused import
from wordcloud import WordCloud
from gensim import corpora, models # and this one