Como importar biblioteca em applets gDesklets?

0

Eu quero usar algumas funções matemáticas em um applet gDesklets, no entanto, não posso import math no script. Eu pesquisei, mas não consegui nada, exceto post semelhante , ainda sem resposta.

Eu tentei importar em tempo de execução, mas __import__ não funciona:

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

e nem eval() work:

name 'eval' is not defined                                                           
/usr/lib/gdesklets/Displays/Clock/clock.display                                      
    1
    2 #
>   3 math = eval('__import__("math")')
    
por Xiè Jìléi 13.06.2011 / 04:36

1 resposta

0

O gDesklets é projetado para ser seguro, portanto, funções como importação, eval, exec etc. são desativadas por razões de segurança. Para forçar a ativação dessas funções, você deve alterar o código-fonte:

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

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

(+) Adicionadas essas duas linhas, as funções __import__ e eval estarão disponíveis nos scripts do usuário.

    
por 18.07.2011 / 03:31