python解释器僵死原因分析及解决

最近在学习Python自然语言处理, 经常需要执行这样绘图的命令

>>> cfd.plot()

奇怪的是 经常关闭生成的图片后 命令并未正常终止 此时python解释器就处于一个僵死状态了 ctrl+d 显式退出也不管用 只能kill进程

刚开始我以为是matplotlib子进程没能正常终止 想查到它的进程号 显式杀死 但是查不到

# 并没发现什么子进程
➜  ~ pstree -p 69096
-+= 00001 root /sbin/launchd
 \-+= 00286 zhugw /Applications/iTerm.app/Contents/MacOS/iTerm2 -psn_0_65552
   \-+= 64910 zhugw /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp zhugw
     \-+= 64911 root login -fp zhugw
       \-+= 64912 zhugw -zsh
         \--= 69096 zhugw /usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/Resources/Python.app/Contents/MacOS/Python
         
# 查看其关联的线程 看不出个所以然来
➜  ~ ps -M 69096
USER    PID   TT   %CPU STAT PRI     STIME     UTIME COMMAND
zhugw 69096 s004    0.0 S     4T   0:01.06   0:15.97 /usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/Resources/Python.app/Contents/MacOS/Python
      69096         0.0 S     4T   0:00.09   0:00.02
      69096         0.0 S     4T   0:00.04   0:00.03         

像这种僵死情况是什么原因导致的? 除了kill python进程外还有其他恢复办法吗?即能显式终止cfd.plot()命令

阅读 2.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题