How to execute a file outside module's namespace?
Angelo Zhou
mzhou at cs.hku.hk
Thu Aug 10 13:23:14 EDT 2006
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
More information about the Python-list
mailing list