文档章节

bpython ImportError: No module named _curses 的解决办法

大数据之路
 大数据之路
发布于 2013/10/10 01:58
字数 596
阅读 4215
收藏 11
点赞 0
评论 1

命令行下的 python 其实是很难用的,最近想尝试下 bpython,它自带语法提示、颜色高亮等 feature,结果 sudo pip install bpython 之后,运行提示 ImportError: No module named _curses

这就尴尬了,curses 库 ( ncurses )提供了控制字符屏幕的独立于终端的方法。curses 是大多数类似于 UNIX 的系统(包括Linux)的标准部分,而且它已经移植到 Windows 和其它系统。

1、针对 windows 的方案:

安装包地址   http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses

安装对应包   pip install name.whl

由于我的是 centos,以上方案并不适用,所以有必要研究下 linux/centos 的解决方案。

2、针对 linux 的方案:

用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 无疑了。

解决步骤:

find / -iname "_curses*.so" 2>/dev/null
/usr/lib64/python2.6/lib-dynload/_curses.so
/usr/lib64/python2.6/lib-dynload/_curses_panel.so

find / 2>/dev/null | grep 'python2.7/lib-dynload'|head -2 
/opt/soft/python-2.7.11/lib/python2.7/lib-dynload
/opt/soft/python-2.7.11/lib/python2.7/lib-dynload/math.so

cp /usr/lib64/python2.6/lib-dynload/_curses*.so /usr/local/lib/python2.7/lib-dynload/

find / -iname "_curses*.so" 2>/dev/null
/usr/lib64/python2.6/lib-dynload/_curses_panel.so
/usr/lib64/python2.6/lib-dynload/_curses.so
/usr/local/lib/python2.7/lib-dynload/_curses_panel.so
/usr/local/lib/python2.7/lib-dynload/_curses.so

bpython

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

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

Refer:

[1] python no module named _curses的问题解决

http://blog.hissummer.com/2015/09/python-no-module-named-_curses%E7%9A%84%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/

© 著作权归作者所有

共有 人打赏支持
大数据之路
粉丝 1484
博文 516
码字总数 343984
作品 0
武汉
架构师
加载中

评论(1)

大数据之路
大数据之路

引用来自“zhujinhe”的评论

这个按照默认只输出2秒钟后的最后一行而不是2秒钟内的所有变化,而且只能监视一个文件。其中有一个人fork了一个项目,改善了这一情况。https://github.com/wojons/python-tail
bpython-----python增强解释器

bpython 是一个增强的 Python 交互解释器,使用 curses 包开发,提供了实时的语法高亮、代码自动完成、函数参数自动完成等功能。bpython 是一个增强的 Python 交互解释器,使用 curses 包开发...

twins
2012/10/19
0
0
使用交互式 shell 来增强你的 Python

Python 编程语言已经成为 IT 中使用的最流行的语言之一。成功的一个原因是它可以用来解决各种问题。从网站开发到数据科学、机器学习到任务自动化,Python 生态系统有丰富的框架和库。本文将介...

10%
05/19
0
0
Python之Django基本命令

一、新建项目 注意 project_name 是自己的项目名称,需要为合法的 Python 包名,如不能为 1a 或 a-b。 二、新建APP 要先进入项目目录下,cd project_name 然后执行下面的命令; 一般一个项目...

baishuchao
07/14
0
0
Flask扩展flask-script文档中文翻译

Flask扩展flask-script文档中文翻译 Flask-Script扩展提供向Flask插入外部脚本的功能。包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,以及其他的运行在...

青崖白鹿
2013/09/03
0
1
在测试调试shadowsocks manyuser时出现以下错误

在测试调试shadowsocks manyuser时出现以下错误 ImportError: No module named M2Crypto.EVP Unhandled exception in thread started by <function _loop at 0x1fd6758> Traceback (most rec......

刘语彤
2015/07/26
0
0
配置和运行 MatchNet CVPR 2015 MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching

配置和运行 MatchNet CVPR 2015 GitHub: https://github.com/hanxf/matchnet 最近一个同学在配置,测试这个网络,但是总是遇到各种问题. 我也尝试了一下,结果也是一堆问题. 这里记录一下. 问题...

wangxiaocvpr
2017/01/20
0
0
pip install ThriftHive 失败了

>>> from hive_service import ThriftHive Traceback (most recent call last): File "", line 1, in ImportError: No module named hive_service >>> from hive_service.ttypes import Hive......

sca7
2017/05/17
63
2
saltstack的启动报错大部分是因为python!!!

今天安装saltstack 来对之前的笔记做些修正,saltstack默认的是2.7版本的python工具,如果不是纯净的操作系统的话,也可能启动会发生各种各样的错误, 在网上没有找到任何的解决办法,因为碰...

大成无敌
2017/12/22
0
0
ModuleNotFoundError: No module named '_gdbm' ModuleNotFoundError: No module named 'gdbm' 'apt_pkg'

在ubutu16.04中将默认的python版本更换为3.6.5的过程中出现下面问题 在终端输入其他命令的过程中也同样出现了下面问题,求教,谢谢各位,第一次提问 Traceback (most recent call last): Fil...

damengshen
06/27
0
0
ubuntu切换python默认版本从2.7到3.5后 报错 ImportError: No module named 'pip'

使用pip遇到错误ImportError: No module named packaging.version的解决方法 2017年03月22日 16:08:33 阅读数:3148 由于需要用到pip,所以在Ubuntu上安装了一个,由于Python是2.7版本的,所...

Jake_xun
05/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python爬虫 爬取百合网的女人们和男人们

学Python也有段时间了,目前学到了Python的类。个人感觉Python的类不应称之为类,而应称之为数据类型,只是数据类型而已!只是数据类型而已!只是数据类型而已!重要的事情说三篇。 据书上说...

p柯西
10分钟前
0
0
在Java中,你真的会日期转换吗

1.什么是SimpleDateFormat 在java doc对SimpleDateFormat的解释如下: SimpleDateFormatis a concrete class for formatting and parsing dates in a locale-sensitive manner. It allows fo......

Java小铺
19分钟前
0
0
Linux系统梳理---系统搭建(二):tomcat的安装和使用

上一章讲到JDK的安装使用,这一章主要记录下服务器tomcat的安装以及部署一个项目. 1.下载tomcat,这里下载的是apache-tomcat-8.5.32.tar.gz 2.创建文件夹,便于管理,和JDK一样,在usr目录下创建t...

勤奋的蚂蚁
29分钟前
0
0
ES15-聚合

1.Terms Aggregation 分组聚合 2.Filter Aggregation 过滤聚合

贾峰uk
30分钟前
0
0
【2018.07.19学习笔记】【linux高级知识 20.27-20.30】

20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行命令 20.30 expect脚本传递参数

lgsxp
33分钟前
0
0
10.32/10.33 rsync通过服务同步~10.35 screen工具

通过服务的方式同步要编辑配置文件:[root@linux-xl ~]# vim /etc/rsyncd.confport=873log file=/var/log/rsync.logpid file=/var/run/rsyncd.pidaddress=192.168.43.21[tes...

洗香香
36分钟前
0
0
与女儿谈商业模式 (3):沃尔玛的成功模式

分类:与女儿谈商业模式 | 标签: 经济学 沃尔玛 陈志武 2007-05-10 09:09阅读(11279)评论(30) 与女儿谈商业模式 (3):沃尔玛的成功模式 陈志武 /文 沃尔玛(Wal-Mart)是另一个有意思的财...

祖冲之
43分钟前
0
0
网页加载速度优化方法总结

1、减少请求 最大的性能漏洞就是一个页面需要发起几十个网络请求来获取诸如样式表、脚本或者图片这样的资源,这个在相对低带宽和高延迟的移动设备连接上来说影响更严重。 2、整合资源 对开发...

Jack088
48分钟前
0
0
dubbo学习

https://blog.csdn.net/houshaolin/article/details/76408399

喵五郎
今天
0
0
mybatis-session.selectList源码分析

0.构建工厂:SqlSessionFactory 。 new SqlSessionFactoryBuilder.build(配置的xml文件) 获取sqlSession对象 //指定事务隔离级别 1. sqlMapper.openSession(TransactionIsolationLevel.SER......

writeademo
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部