I have a trusted remote server that stores many custom Python modules. I can fetch them via HTTP (e.g. using urllib2.urlopen
) as text/plain, but I cannot save the fetched module code to the local hard disk. How can I import the code as a fully operable Python module, including its global variables and imports?
I suppose I have to use some combination of exec
and imp
module's functions, but I've been unable to make it work yet.
views:
62answers:
2
+7
A:
It looks like this should do the trick: importing a dynamically generated module
>>> import imp >>> foo = imp.new_module("foo") >>> foo_code = """ ... class Foo: ... pass ... """ >>> exec foo_code in foo.__dict__ >>> foo.Foo.__module__ 'foo' >>>
Also, as suggested in the ActiveState article, you might want to add your new module to sys.modules
.
David Wolever
2010-09-26 20:13:35
Nice, I've been wondering about this for a while.
intuited
2010-09-26 23:29:46
+1
A:
Here's something I bookarmked a while back that covers something similar:
It's a bit beyond what you want, but the basic idea is there.
ars
2010-09-26 20:15:58