python no module named _curses的问题解决

Life is short , "play" more!
本文来自lihao's Blog,转载请注明。

linux系统默认安装了python2.6, 因为qark建议使用2.7.6, 虽然python2.6 也能运行起来(貌似有些问题)还是源码安装python2.7.

下载源码,configure,make,makeinstall后。 发现python2.7 import curses时 提示 找不到_curses 错误。  用pip(python2.7 如果configure的时候–with-ensurepip=yes 则会自动帮你安装pip)安装了curses-2048  (sudo pip install curses-2048)  仍然继续提示

  import curses
File “/usr/local/lib/python2.7/curses/__init__.py”, line 15, in <module>
from _curses import *
ImportError: No module named _curses

到底是什么原因呢?明明安装了 curses 呢?

答案:

仔细分析,你应该会发现 第一次没有安装 curses 模块和安装后, 其实提示的错误是不完全一样的。  正常没有安装 curses时,会提示找不到模块 curses, 而这一次提示的是 no module named _curses , 而且提示你在 curses/__init__.py 里第几行的错误。实际上已经load了curses,只是再加载的中间出现了错误。

经过对比python2.6 ,终于发现,原来 pythong2.7/lib-dynload 里没有相应的 curses 库

_curses_panel.so
_curses.so

看到名字,你也许就明白了, 原来 _curses 是指这个 _curses.so 无疑了。

此时你将python2.6 的 这2个so文件拷贝到 pythong2.7 的lib-dynload 文件夹下, 就解决了问题。

but,至于为什么pip install curses-2048 没有安装此2个so, 也不清楚,但是问题总算解决了, 具体的原因待更进一步分析。

 

此篇文章已被阅读7731 次


3条评论

  1. m4ak说道:

    谢谢大神,方法靠谱

  2. 七月说道:

    我的开发环境,乌班图16.04,python3.4.3,django1.9.6 用的虚拟环境开发,报这个错,按照大神的方法没解决,求指导,谢谢

发表评论

电子邮件地址不会被公开。 必填项已用*标注