importing specific module
Peter Hansen
peter at engcorp.com
Tue Jun 17 17:51:02 EDT 2003
drs wrote:
>
> I feel like I have seen this answered here, but I am not finding the
> discussion, so sorry if this is asked a lot.
>
> I would like to import a specific module which may or may not be on the
> path, and because of concerns about duplicate names, changing network
> drives, and moving files, I would rather not append sys.path. So, something
> like
>
> >>> import('C:\\path\\to\\some\\module.py')
>
> is what I am looking to do. imp.load_module() seems promising, but the
> documentation is going over my head so I am not sure it is appropriate. Any
> suggestions? Thanks,
I think you want roughly this. It may require some tweaks from
others here to make it robust or general enough for your intended use,
but it worked roughly as-is for me. (Not tested exactly as it appears
here.)
def import_from_file(name, path):
import sys, imp
f = open(path, 'rb')
try:
description = ('.py', 'r', imp.PY_SOURCE)
mod = imp.load_module(name, f, path, description)
sys.modules[name] = mod
finally:
f.close()
-Peter
More information about the Python-list
mailing list