Ошибка нет модуля с именем 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. Любая помощь будет оценена.

4 ответа

Решение

Установите модуль UniCurses отсюда: https://pypi.python.org/pypi/UniCurses

Возможно, вам придется изменить часть своего кода, чтобы использовать его, поскольку он обеспечивает функциональность NCurses, а не библиотеки vanilla curses.

К сожалению, прямого проклятия Python для Windows не существует.

Вы также можете посмотреть на установку модуля curses здесь: http://www.lfd.uci.edu/~gohlke/pythonlibs/.

Он позволяет использовать родные проклятия Python в Windows, поэтому можно использовать весь ваш стандартный код проклятий Python.

Это подходит для меня:

pip install windows-curses

Вдохновленный @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 папка, в которой вы установили свой питон.

Получил ту же ошибку с 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. Затем (извлеченный &) скомпилировал это:

./configure
make

Теперь .so нужные мне файлы были в build/lib.linux-i686-3.4/ и я скопировал их /usr/local/lib/python3.4/lib-dynload/,

Другие вопросы по тегам