what is Python's module search path?

S

Stephen Ferg

I need a little help here.

I'm developing some introductory material on Python for non-programmers.

The first draft includes this statement. Is this correct?

-----------------------------------------------------------------
When loading modules, Python looks for modules
in the following places in the following order:

* Python's built-in modules, including modules in the standard library
* in the /python23/Libs/site-packages directory
* the directory from which your main module was loaded
* in directories in PYTHONPATH
 
S

Stephen Ferg

Thanks.

It says """When a module named spam is imported, the interpreter
searches for a file named spam.py in the current directory, and then
in the list of directories specified by the environment variable
PYTHONPATH. ... When PYTHONPATH is not set, or when the file is not
found there, the search continues in an installation-dependent default
path; on Unix, this is usually .:/usr/local/lib/python.

Actually, modules are searched in the list of directories given by the
variable sys.path which is initialized from the directory containing
the input script (or the current directory), PYTHONPATH and the
installation-dependent default."""

Is the installation-dependent default path on Windows usually
Lib/site-packages?

If so, then it looks like my original search order was wrong,
and the correct search order (on Windows) is:

---------------------------------------------------------
* Python's built-in modules, including modules in the standard
library
* the directory from which your main module was loaded
* in directories in PYTHONPATH
* in the /python23/Libs/site-packages directory
--------------------------------------------------------

Is that correct?

Part of what is confusing me is that Lib/site-packages is pretty
poorly documented.
 
R

Rene Pijlman

Stephen Ferg:
It says """When a module named spam is imported, the interpreter
searches for a file named spam.py in the current directory, and then
in the list of directories specified by the environment variable
PYTHONPATH. ... When PYTHONPATH is not set, or when the file is not
found there, the search continues in an installation-dependent default
path; on Unix, this is usually .:/usr/local/lib/python.

Actually, modules are searched in the list of directories given by the
variable sys.path which is initialized from the directory containing
the input script (or the current directory), PYTHONPATH and the
installation-dependent default."""

Is the installation-dependent default path on Windows usually
Lib/site-packages?

I guess it's more than that.

PythonWin 2.2.2 (#37, Oct 14 2002, 17:02:34) [MSC 32 bit (Intel)] on
win32.['','C:\\Python\\Python22\\lib\\site-packages\\Pythonwin',
'C:\\Python\\Python22\\lib\\site-packages\\win32',
'C:\\Python\\Python22\\lib\\site-packages\\win32\\lib',
'C:\\Python\\Python22\\lib\\site-packages', 'C:\\Python\\Python22\\DLLs',
'C:\\Python\\Python22\\lib', 'C:\\Python\\Python22\\lib\\lib-tk',
'C:\\Python\\Python22']

None of these directories qualify for any of the other categories, so
these must all be in the installation-dependent default.
If so, then it looks like my original search order was wrong,
and the correct search order (on Windows) is:

---------------------------------------------------------
* Python's built-in modules, including modules in the standard
library
* the directory from which your main module was loaded
* in directories in PYTHONPATH
* in the /python23/Libs/site-packages directory

Well no, I don't think so. The tutorial doesn't say that the modules in
the standard library are searched first. It says the current directory is
first, which you don't even mention. And the tutorial says sys.path is
searched, which may be modified by the program.

Why are you trying to rephrase the tutorial, when the tutorial is
perfectly clear?
Part of what is confusing me is that Lib/site-packages is pretty
poorly documented.

It doesn't have to be, for ordinary users. My guess is the documentation
is in this area: http://www.python.org/sigs/distutils-sig/doc/
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top