How can I import a script with an arbitrary name ?
Steven D'Aprano
steve at REMOVE.THIS.cybersource.com.au
Tue Oct 31 06:23:15 EST 2006
On Tue, 31 Oct 2006 11:00:52 +1100, Ben Finney wrote:
> If you want a solution that gives you an actual module object, here's
> what I use:
>
> def make_module_from_file(module_name, file_name):
> """ Make a new module object from the code in specified file """
>
> from types import ModuleType
> module = ModuleType(module_name)
>
> module_file = open(file_name, 'r')
> exec module_file in module.__dict__
>
> return module
Isn't that awfully complicated? What's wrong with using __import__ to get
a module object?
>>> mod = __import__("math")
>>> mod
<module 'math' from '/usr/lib/python2.4/lib-dynload/mathmodule.so'>
The only advantage (or maybe it is a disadvantage?) I can see to your
function is that it doesn't search the Python path and you can specify an
absolute file name.
--
Steven.
More information about the Python-list
mailing list