Tal vez esto es obvio y me lo estoy perdiendo, o tal vez alguien ya ha escrito una gran guía y mi google (aparentemente exhaustivo) no está funcionando, pero no puedo entender por mi vida cómo obtener la consola de Python. Ritmbox para hacer cualquier cosa!
Lo he habilitado desde el menú del complemento y luego lo abro usando Herramientas-> Consola Python.
Imprime
You can access the main window through the 'shell' variable :
<rb.Shell object at 0xa6cdd24 (RBShell at 0xa14e000)>
>>>
¡Pero cualquier cosa que escriba en el indicador no hace nada ! Lo he intentado help
, lo he intentado exit()
, lo he intentado print "hello world"
, ¡nada hace nada!
Todas estas cosas funcionan, por supuesto, en una consola Python normal. ¡No tengo idea de qué demonios está la diferencia aquí! ¿Se supone que debo hacer algo más que presionar enter?
Respuestas:
La Guía de escritura de complementos de Rhythmbox tiene varios ejemplos de comandos que puede usar en la consola de Python para controlar la reproducción y modificar Rhythmbox:
Reproducir pausar
Detener
Siguiente pista
Agregar una canción a la cola de reproducción
Mostrar una visualización
fuente
print "hello world"
y luego presione Entrar. Todavía no veo este problema en ningún otro lugar, por lo que podría considerar abrir un nuevo error en el rastreador de errores Rhythmbox .Al igual que con cualquier objeto de Python, puede averiguar mucho al usar el método dir () en él. Esto le dará un buen lugar para comenzar.
Luego puede dirigir () cualquiera de las propiedades de aspecto interesante, como 'get_player', tal vez.
Otro buen lugar para buscar es si ve un atributo __doc__ en el objeto.
fuente
dir(rb.Shell)
y presiono enter, solo agrega un salto de línea y no hace nada ... ¿Tu shell funcionó OOB? Tengo la instalación de rhythmbox predeterminada en Ubuntu 10.04 ... No puedo pensar en nada que haya cambiado que rompa el shell. Mi consola Python normal (fuera de rb) funciona bien ...Santo cielo, acabo de descubrir cuál era el problema (2.5 años después), por alguna razón mi "enter" asigna mapas a dos eventos clave diferentes dependiendo de si el bloqueo numérico está activado o no. Cuando el bloqueo numérico está activado, regresa
KP_ENTER
, y cuando el bloqueo numérico está desactivado, regresaReturn
. Siempre tengo el bloqueo numérico activado, porque prefiero ingresar números con el teclado.Desafortunadamente, la consola de Python en Rhythmbox solo reconoce
Return
ejecutar un comando: elKP_ENTER
evento solo entra en un salto de línea ...Pero una solución fácil, solo apague el bloqueo numérico cuando use la consola. Me he encontrado con este problema en algunas otras aplicaciones (generalmente juegos), así que voy a buscar una mejor solución a largo plazo (tal vez obligar a ambos a mapear de
Return
alguna manera) ...fuente
xmodmap -pke > ~/.Xmodmap
para crear un diseño personalizado, luego, al final de ese archivo, agregue una línea ykeysym KP_Enter = Return
luego ejecutexmodmap ~/.Xmodmap
para habilitar el nuevo diseño personalizado para esta sesión. Para que se ejecute automáticamente para el futuro, agregue lo siguiente a~/.xinitrc
:if [ -f $HOME/.Xmodmap ]; then /usr/bin/xmodmap $HOME/.Xmodmap fi
if
declaración agregada a.xinitrc
necesita tener saltos de línea despuésthen
y antesfi
.return
tecla en lugar de laenter
tecla numlock ?