Ошибка в модуле с именем 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