Wie importiere ich eine Bibliothek in gDesklets-Applets?

484
Xiè Jìléi

Ich möchte einige mathematische Funktionen in einem gDesklets-Applet verwenden, jedoch nicht import mathim Skript. Ich habe gegoogelt, aber nichts bekommen, außer diesem ähnlichen Beitrag, der noch nicht beantwortet wurde.

Ich habe versucht, zur Laufzeit zu importieren, __import__funktioniert aber nicht:

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

und keiner konnte eval()arbeiten:

name 'eval' is not defined  /usr/lib/gdesklets/Displays/Clock/clock.display  1 2 # > 3 math = eval('__import__("math")') 
0
Äh .. Warum stimmst du für die Schließung? Xiè Jìléi vor 12 Jahren 0

1 Antwort auf die Frage

0
Xiè Jìléi

gDesklets ist so konzipiert, dass es sicher ist. Daher sind Funktionen wie Import, Eval, Exec usw. aus Sicherheitsgründen deaktiviert. Um die Aktivierung dieser Funktionen zu erzwingen, sollten Sie den Quellcode ändern:

/usr/lib/gdesklets/scripting/Script.py:  ... self.__environment["str"] = str self.__environment["sum"] = sum ... + self.__environment["__import__"] = __import__ + self.__environment["eval"] = eval ... 

(+) Diese beiden Zeilen hinzugefügt, Funktionen __import__und evalsind dann in den Benutzerskripten verfügbar.