如何在 gDesklets 小程序中导入库?

如何在 gDesklets 小程序中导入库?

import math我想在 gDesklets 小程序中使用一些数学函数,但在脚本中却不行。我在 Google 上搜索过,但一无所获,除了这篇类似的帖子,尚未得到答复。

我尝试在运行时导入,但是__import__不起作用:

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

但都行不通eval()

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

答案1

gDesklets 的设计非常安全,因此 import、eval、exec 等功能出于安全原因被禁用。要强制启用这些功能,您应该更改源代码:

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

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

(+) 添加了这两行函数,__import__然后eval将在用户脚本中可用。

相关内容