Pregunta

Después de probar un rato con el marco Cmd.cmd en Python, me di cuenta de un problema que no sé qué hacer al respecto. Además creo que tener este trabajo algunas horas antes (o sólo estoy loco), así que esto es aún más raro.

Tengo el siguiente código de ejemplo, probado en los sistemas Windows y Linux (lo que no es un problema de Windows), pero la implementación del tabulador simplemente no funciona.

Si utilizo el exactamente el mismo código en Python 2 que hace el trabajo en el sistema Linux (no en el de Windows sin embargo)

import cmd
class Shell ( cmd.Cmd ):    
    def do_test ( self, params ):
        print( 'test: ' + params )

    def do_exit ( self, params ):
        return True

    def do_quit ( self, params ):
        return True

if __name__ == '__main__':
    x = Shell()
    x.cmdloop()

¿Conoce por qué sucede esto, o lo que yo puedo hacer, para hacer posible la implementación del tabulador?

¿Fue útil?

Solución

En realidad funciona para mí en Linux tanto en Python 2 y 3. Sin embargo, mi configuración pitón fue compilado con soporte para readline, que se requiere para que sea automático por el cmd documentación . Sospecho que su Linux Python 3 no fue compilado con él.

Por desgracia, readline es específico de UNIX. Ver pitón del tabulador en ventanas para una discusión de otras opciones en Windows.

Otros consejos

Lo tengo que trabajar en las ventanas después de haber instalado el módulo pyreadline de aquí https: // PyPI .python.org / PyPI / pyreadline / 2,0

En Mac no es el autónomo GNU readline módulo .
Se puede conseguir con pip install gnureadline.
Se ha probado con Python 2.6, 2.7, 3.2 y 3.3.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top