No puedo ejecutar un .py en Conky
#1
Mar, 28/07/2020 - 14:25
No puedo ejecutar un .py en Conky
Desarrollé un calendario en Python que, al ejectuarlo Bash, funciona de manera correcta. Pero no sucede lo mismo con Conky,
En Conky:
${exec python calendario.py}
El error que me tira:
Traceback (most recent call last):
File "/usr/local/bin/calendarconky.py", line 32, in
print ('{} {} {} {} {} {} {}'.format(semana[0], semana[1], semana[2], semana[3], semana[4], semana[5], semana[6]).center(get_terminal_size().columns))
OSError: [Errno 25] Inappropriate ioctl for device
Mi script en Python:
#!/usr/bin/env python3 from os import get_terminal_size from datetime import date from calendar import monthcalendar import conkyutil def eshoy (dia, hoy=(date.today().strftime('%Y-%m-%d')).split('-')[2]): if dia == int(hoy): return '[', ']' else: return ' ', ' ' def strDia (dia): if dia == 0: return ' -- ' elif dia < 10: return eshoy(dia)[0] + '0' + str(dia) + eshoy(dia)[1] else: return eshoy(dia)[0] + str(dia) + eshoy(dia)[1] dato = tuple((date.today().strftime('%Y-%m')).split('-')) strMes = [[' Lu ', ' Ma ', ' Mi ', ' Ju ', ' Vi ', ' Sa ', ' Do ']] for semana in monthcalendar(int(dato[0]), int(dato[1])): strSemana = [] for nDia in semana: strSemana.append(strDia(nDia)) strMes.append(strSemana) del (nDia, strSemana) for semana in strMes: print ('{} {} {} {} {} {} {}'.format(semana[0], semana[1], semana[2], semana[3], semana[4], semana[5], semana[6]).center(get_terminal_size().columns))
Un inciso, el error lo arroja sobre la línea 32, sin embargo, el código que muestras tan sólo tiene 16 líneas. Entiendo que no has publicado el código completo del script.
A un clic de distancia de ti...
Ahí arreglé el primer mensaje.
Gracias por el programa fuente.
No soy programador ni estoy cerca de serlo.
Como se muy poco, lo basico, trato de escribir usando
los conocimientos minimos de Python.
Reconozco que el original es mejor, solo quiero
mostralo de otra forma, para mi mas simple.
Si por alguna razon, genero alguna molestia o
se considera un irrespeto, no es el proposito.
De manera que acepten mis disculpas y malos
modales. gracias.
Nota : si conozco las tildes pero no con este teclado
y á es demasiado trabajo
quita los espacios tabuladores.
mirar los espacio tabuladores en el original
Bien gracias por tu aporte @hpmhpm , el punto en esto es ¿conky logra ejecutarlo sin problemas ??(Tu version de script )
Sólo aparece la semana actual en tu versión.
Vos estas obteniendo los datos en filas y columnas del terminal en donde se mostrarla la salida standard , por eso ejecutarlo en un emulador de terminal no obtenes error , conky no se ejecuta en un terminal.
¿Existe alguna razon por la cual no uses ,por ejemplo el comando "cal" en conky o utilizar el modulo "calendar" en python .?
Fijate por ejemplo el resultado de :
------------------------------------------------------------------------------------------------------------------------------------------
cal | grep --before-context 6 --after-context 6 --color -e " $(date +%e)" -e "^$(date +%e)"
-------------------------------------------------------------------------------------------------------------------
Si, no me gusta cómo queda el resultado final: No lo puedo centralizar ni marcar el día actual.
Con la secuencia de comandos que te mostre tenes destacado en color el dia actual ( es solo un ejemplo de los muchos que podes encontrar en internet) ,( reitero leete las opciones del modulo calendar de python ,)
Por otra parte una vez que lo muestres en conky (en forma directa o rediccinando hacia un archivo ),el mismo archivo de configuracion de conky tiene opciones para posicionar el resultado en pantalla , en cualquier lugar , alineacion ,derecha izquierda, centrado , gap ,y una larga serie de opciones .
Cuando ejecuto tu comando no me aparece nafa.
Conky no acepta los colores de Bash.
La secuencias de comandos a mi me funciona perfecto , muestra el calendario destacando en color el dia en curso
Por otra parte , en conky para que al ejecutar un comando o un scrip bash , muestre color tenes que usar
{execp comando }
{execpi comando }
de esta forma parsea el color indicado .
$ cal | grep --before-context 6 --after-context 6 --color -e " $(date +%e)" -e "^$(date +%e)"
$
Sí, utilizo esas variables pero no va…
A ver ,fijate en la siguiente pagina tenes la solucion completa
Y si queres explorar mas opciones y tu propia version
Ademas si buscas ,tenes versiones para conky hechas en lua , python , etc.