how can I import a module without using pythonpath?

Fredrik Lundh fredrik at pythonware.com
Tue Dec 14 02:53:41 EST 2004


Doug Holton wrote:

>> I'm using python 2.2, I want to import a module by referring to its relative location. The reason 
>> for this is that there is another module with the same name that's already in pythonpath( not my 
>> decision, but I got to work around it, bummer). So is there any easy way to do it?
>
> import sys, os
> sys.path.insert(0,os.path.abspath("relative path"))
> import module
> sys.path.remove(os.path.abspath("relative path"))

a try-finally clause is a pretty good idea, in this case.

you might also wish to store the calculated path, in case the module
changes the current directory.  or store the original sys.path, in case
the module messes with the path but shouldn't.  (on the other hand, if
the module is nice and well behaved, you can replace the last line with
del sys.path[0]...)

</F> 






More information about the Python-list mailing list