Slawomir Nowaczyk wrote: > Hello, > > Let's say I have a module "emacs", defining function eexecfile(file): > > def eexecfile(file): > # do other stuff > execfile(file,globals()) > # do other stuff > > Now, assume I have file test.py containing an assignment "x=1" > > If I run python and do: > > import emacs > emacs.eexecfile("test.py") > print emacs.x # works, x was put in module namespace > print x # doesn't work, x is not defined in main script namespace > > What is the best way to make "print x" work? Using the following: > > import __main__ > def eexecfile(file): > # do other stuff > execfile(file, __main__.__dict__) > # do other stuff > > seems to work, but it gives me a slightly uneasy feeling. Is this the > right way? >
"from emacs import x" will expose x to the current namespace -- http://mail.python.org/mailman/listinfo/python-list