Instead, imp.load_moduleyou can use
import imp
with open(mainfile) as src:
imp.load_module('__main__', src, mainfile, (".py", "r", imp.PY_SOURCE))
This imports the file as a module __main__, executing it.
, -, imp.PY_SOURCE, , , -, .
__name__ :
>>> src = '''\
... if __name__ == '__main__': print 'Main!'
... else: print 'Damn', __name__
... '''
>>> exec src
Main!
>>> exec src in {}
Damn __builtin__
>>> exec src in {'__name__':'__main__'}
Main!