Come importare la libreria in applet gDesklets?


0

Voglio usare alcune funzioni matematiche in un applet gDesklets, tuttavia, non posso import math nella sceneggiatura. Ho cercato su Google ma non ho ottenuto nulla, tranne questo post simile , ma senza risposta.

Ho provato a importare in fase di esecuzione, ma __import__ non funziona:

name '__import__' is not defined                                                     
/usr/lib/gdesklets/Displays/Clock/clock.display                                      
    1
    2 #
>   3 math = __import__('math')

e nessuno dei due potrebbe eval() lavoro:

name 'eval' is not defined                                                           
/usr/lib/gdesklets/Displays/Clock/clock.display                                      
    1
    2 #
>   3 math = eval('__import__("math")')

Uh .. Perché votare per chiudere?
Xiè Jìléi

Risposte:


0

gDesklets è progettato per essere sicuro, quindi funziona come importazione, eval, exec, ecc., sono disabilitati per motivi di sicurezza. Per forzare l'abilitazione di queste funzioni, è necessario modificare il codice sorgente:

/usr/lib/gdesklets/scripting/Script.py:

  ...
  self.__environment["str"] = str
  self.__environment["sum"] = sum
  ...
+ self.__environment["__import__"] = __import__
+ self.__environment["eval"] = eval
  ...

(+) Aggiunte queste due linee, funzioni __import__ e eval sarà quindi disponibile negli script utente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.