当我尝试运行以下代码时......
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上运行代码。任何帮助都将不胜感激。
答案 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