Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > what is Python's module search path?

Reply
Thread Tools

what is Python's module search path?

 
 
Stephen Ferg
Guest
Posts: n/a
 
      01-08-2004
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

------------------------------------------------------------------
Thanks in advance! -- Steve Ferg
 
Reply With Quote
 
 
 
 
Rene Pijlman
Guest
Posts: n/a
 
      01-08-2004
Stephen Ferg:
>I need a little help here.


See "6.1.1 The Module Search Path" on
http://www.python.org/doc/current/tut/node8.html

--
René Pijlman
 
Reply With Quote
 
 
 
 
Stephen Ferg
Guest
Posts: n/a
 
      01-08-2004
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.
 
Reply With Quote
 
Rene Pijlman
Guest
Posts: n/a
 
      01-09-2004
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.
>>> import sys
>>> print sys.path

['','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
>--------------------------------------------------------
>
>Is that correct?


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/

--
René Pijlman
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: module docstring, documentation,anything? please note is the module type/object NOT some module Maric Michaud Python 0 06-24-2006 12:42 PM
removing search engines from the search bar whatever.or.not@gmail.com Firefox 1 02-17-2005 12:06 PM
Search Bar not displaying search Engines Zimran Douglas Firefox 1 01-07-2005 02:30 PM
search within a search within a search - looking for better way...my script times out Abby Lee ASP General 5 08-02-2004 04:01 PM



Advertisments