I'm trying to execute a number of functions using eval() and I need to create some kind of environment for them to run. It is said in docs that you can pass globals as a second parameter to eval(). But it seems to not work in my case. Here's the simpified example (i tried two approaches, declaring variable global and using globals(), both do not work:
script.py:
import test
global test_variable
test_variable = 'test_value'
g = globals()
g['test_variable'] = 'test_value'
eval('test.my_func()', g)
test.py:
def my_func():
global test_variable
print repr(test_variable)
And I'm getting "NameError: global name 'test_variable' is not defined". What should I do to pass that test_variable into my_func()? Assuming I can't pass it as a parameter.