Как импортировать библиотеку в апплеты gDesklets?

350
Xiè Jìléi

Я хочу использовать некоторые математические функции в апплете gDesklets, однако я не могу import mathв сценарии. Я гуглил, но ничего не получил, кроме этого похожего поста, но без ответа.

Я пытался импортировать во время выполнения, но __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")') 
0
Э-э ... Зачем голосовать, чтобы закрыть? Xiè Jìléi 12 лет назад 0

1 ответ на вопрос

0
Xiè Jìléi

gDesklets безопасен, поэтому функции импорта, 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будут доступны в пользовательских скриптах.

Похожие вопросы