Выполнять декодированный код

Хочу использовать авто обновляемый код, в планах было заранее кодировать код через base64, заливать на сервер, а на клиентской стороне декодировать этот код и выполнять, но получаю ошибку SyntaxError: invalid syntax, как и каким образом мне надо кодировать\декодировать данные? (не рабочий код)

decoded = base64.standard_b64decode(b'ZGVmIHByaWludCh4KToKICAgIHByaW50KHN0cih4KSkKZm9yIHggaW4gcmFuZ2UoMTApOgogICAgcHJpaW50KHgp')
print(str(decoded)+'\n\n\n')
eval(decoded)

Ответы (1 шт):

Автор решения: Александр Рассказчиков

Для выполнения полноценного кода на Python используйте встроенную функцию exec() вместо eval().

Eval позволяет вам лишь получать результаты выражений.

В отличие от exec(), eval не хранит переменные, функции и прочие объекты в памяти.

import base64

decoded = base64.standard_b64decode(b'ZGVmIHByaWludCh4KToKICAgIHByaW50KHN0cih4KSkKZm9yIHggaW4gcmFuZ2UoMTApOgogICAgcHJpaW50KHgp')
print(str(decoded)+'\n\n\n')
exec(decoded)

Вывод:

b'def priint(x):\n    print(str(x))\nfor x in range(10):\n    priint(x)'



0
1
2
3
4
5
6
7
8
9
→ Ссылка