错误没有名为curses的模块

时间:2013-07-01 17:20:34

标签: python windows python-2.7 telnet curses

当我尝试运行以下代码时......

from telnetsrvlib import *

if __name__ == '__main__':
"Testing - Accept a single connection"
class TNS(SocketServer.TCPServer):
    allow_reuse_address = True

class TNH(TelnetHandler):
    def cmdECHO(self, params):
        """ [<arg> ...]
        Echo parameters
        Echo command line parameters back to user, one per line.
        """
        self.writeline("Parameters:")
        for item in params:
            self.writeline("\t%s" % item)
    def cmdTIME(self, params):
        """
        Print Time
        Added by dilbert
        """
        self.writeline(time.ctime())

logging.getLogger('').setLevel(logging.DEBUG)

tns = TNS(("0.0.0.0", 8023), TNH)
tns.serve_forever()

我收到此错误

Traceback (most recent call last):
File ".\telserv.py", line 1, in <module>
from telnetsrvlib import *
File "C:\Python27\lib\site-packages\telnetsrvlib-1.0.2-py2.4.egg\telnetsrvlib.py", line 31, in <module>
import curses.ascii
  File "C:\Python27\lib\curses\__init__.py", line 15, in <module>
from _curses import *

我正在运行python 2.7并导入了telnetsrvlib库,我正在Windows 7上运行代码。任何帮助都将不胜感激。

5 个答案:

答案 0 :(得分:14)

您还可以从这里查看安装curses模块: http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses

它允许在Windows上使用python的本机curses,因此可以使用所有标准的python curses代码。

答案 1 :(得分:10)

从此处安装UniCurses模块:https://pypi.python.org/pypi/UniCurses

您可能需要更改一些代码才能使用它,因为它提供了NCurses的功能,而不是vanilla curses库。

不幸的是,没有直接的Python for Windows端口的curses。

答案 2 :(得分:3)

在Ubuntu 14.04上使用Python 3.4得到了同样的错误,这就是我修复它的方法。

我的/usr/local/lib/python3.4/lib-dynload/目录没有以下文件 -

_curses.cpython-34m.so
_curses_panel.cpython-34m.so

获得最新的Python 3.4.2 source的副本。 然后(提取&amp;)编译它:

./configure
make

现在我需要的.so个文件位于build/lib.linux-i686-3.4/,我将其复制到/usr/local/lib/python3.4/lib-dynload/

答案 3 :(得分:2)

受到@YKB的启发,我为Ubuntu 16.04和Python3.5.2做了这个,

sudo apt-get install libncurses5-dev

然后转到Python的源代码,make,创建了两个新文件。

_curses.cpython-35m-x86_64-linux-gnu.so
_curses_panel.cpython-35m-x86_64-linux-gnu.so

然后将它们复制到安装python的lib-dynload文件夹中。

答案 4 :(得分:1)

对我有用:

pip install windows-curses