web-dev-qa-db-fra.com

Erreur aucun module nommé curses

Lorsque j'essaie d'exécuter le code suivant ...

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()

Je reçois cette erreur

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 *

J'exécute python 2.7 et j'ai importé la bibliothèque telnetsrvlib et j'exécute le code sur Windows 7. Toute aide serait appréciée.

12
Strommer

Installez le module UniCurses à partir d'ici: https://pypi.python.org/pypi/UniCurses

Vous devrez peut-être modifier une partie de votre code pour l'utiliser, car il fournit les fonctionnalités de NCurses, pas la bibliothèque de malédictions de Vanilla.

Malheureusement, il n'existe aucun portage direct de Python pour Windows).

11
gorzek

Vous pouvez également étudier l'installation du module curses à partir d'ici: http://www.lfd.uci.edu/~gohlke/pythonlibs/#curses .

Il permet d'utiliser les curses natives de python sur Windows, donc tout votre code standard python curses peut être utilisé.

14
Johan

Ça marche pour moi:

pip install windows-curses
4
Yura G

Vous avez la même erreur avec Python 3.4 sur Ubuntu 14.04 et voici comment je l'ai corrigé.

Ma /usr/local/lib/python3.4/lib-dynload/ le répertoire n'avait pas les fichiers suivants -

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

J'ai une copie de la dernière Python 3.4.2 source . Puis (extraite &) l'a compilée:

./configure
make

Maintenant le .so les fichiers dont j'avais besoin se trouvaient dans build/lib.linux-i686-3.4/ et je les ai copiés dans /usr/local/lib/python3.4/lib-dynload/.

3
YKB

inspiré par @YKB, je l'ai fait pour Ubuntu 16.04 et Python3.5.2,

Sudo apt-get install libncurses5-dev,

puis allez dans le code source de Python, et make, deux nouveaux fichiers sont créés.

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

Et puis copiez-les dans lib-dynload dossier où vous avez installé votre python.

2
TonyTony

Ça marche pour moi:

pip install windows-curses

Tapez l'invite anaconda ou votre IDE

0
VICTOR STEVE