order of importing modules

Catherine Moroney Catherine.M.Moroney at jpl.nasa.gov
Wed Jan 12 14:38:39 EST 2011


I've looked at my sys.path variable and I see that it has
a whole bunch of site-package directories, followed by the
contents of my $PYTHONPATH variable, followed by a list of
misc site-package variables (see below).

I've verified that if I manually reverse the order of sys.path
I can then import the proper version of the module that I want.
But this is not a permanent solution for me as this will mess up
other people are who working with the same code.

But, I'm curious as to where the first bunch of 'site-package'
entries come from.  The 
/usr/lib64/python2.5/site-packages/pyhdfeos-1.0_r57_58-py2.5-linux-x86_64.egg
is not present in any of my environmental variables yet it shows up
as one of the first entries in sys.path.

A colleague of mine is running on the same system as I am, and he
does not have the problem of the
/usr/lib64/python2.5/site-packages/pyhdfeos-1.0_r57_58-py2.5-linux-x86_64.egg
variable showing up as one of the first entries in sys.path.

Thanks for the education,

Catherine

Dan Stromberg wrote:
> On Tue, Jan 11, 2011 at 4:30 PM, Catherine Moroney
> <Catherine.M.Moroney at jpl.nasa.gov> wrote:
>> In what order does python import modules on a Linux system?  I have a
>> package that is both installed in /usr/lib64/python2.5/site-packages,
>> and a newer version of the same module in a working directory.
>>
>> I want to import the version from the working directory, but when I
>> print module.__file__ in the interpreter after importing the module,
>> I get the version that's in site-packages.
>>
>> I've played with the PYTHONPATH environmental variable by setting it
>> to just the path of the working directory, but when I import the module
>> I still pick up the version in site-packages.
>>
>> /usr/lib64 is in my PATH variable, but doesn't appear anywhere else.  I
>> don't want to remove /usr/lib64 from my PATH because that will break
>> a lot of stuff.
>>
>> Can I force python to import from my PYTHONPATH first, before looking
>> in the system directory?
>>
>> Catherine
>> --
>> http://mail.python.org/mailman/listinfo/python-list
> 
> Please import sys and inspect sys.path; this defines the search path
> for imports.
> 
> By looking at sys.path, you can see where in the search order your
> $PYTHONPATH is going.
> 
> It might actually be better to give your script a command line option
> that says "Throw the following directory at the beginning of
> sys.path".



More information about the Python-list mailing list