Ошибка в модуле с именем 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, и я запускаю код на окнах 7. Любая помощь будет оценена.
Ответы
Ответ 1
Установите модуль UniCurses отсюда: https://pypi.python.org/pypi/UniCurses
Вам может потребоваться изменить часть своего кода, чтобы использовать его, поскольку он обеспечивает функциональность NCurses, а не библиотеку проклятий ванили.
К сожалению, прямой порт Python для Windows не существует.
Ответ 2
Вы также можете изучить установку модуля curses:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses.
Это позволяет использовать накладные curses python в Windows, поэтому можно использовать весь стандартный код проклятия python.
Ответ 3
Получил ту же ошибку с Python 3.4 на Ubuntu 14.04, и вот как я ее исправил.
В моем каталоге /usr/local/lib/python3.4/lib-dynload/
не было файлов:
_curses.cpython-34m.so
_curses_panel.cpython-34m.so
Получил копию последнего Python 3.4.2 source.
Затем (извлеченный &) скомпилировал его:
./configure
make
Теперь файлы .so
, которые мне нужны, были в build/lib.linux-i686-3.4/
, и я скопировал их в /usr/local/lib/python3.4/lib-dynload/
.
Ответ 4
вдохновленный @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
И затем скопируйте их в папку lib-dynload
, где вы установили свой питон.
Ответ 5
вы даже можете найти исходный код и вставить его в папку lib!
После этого импорт будет продолжаться, как обычно.
<h1>Maker Effect</h1>
<input type = 'text' value = 'Enter Anything to Test your Keyboard : '/>
<input type = 'button' value = ' Done! '/>
Ответ 6
Это подходит для меня:
pip install windows-curses