import vs. subdirectory search

Gabriel Genellina gagsl-py at
Thu Jan 18 16:01:36 CET 2007

"John Nagle" <nagle at> escribió en el mensaje 
news:45AED511.8090307 at

>    I'm running Python 2.3.4 from a CGI script on a shared hosting Linux 
> system.
> The CGI program is being executed from Apache, as "nobody".  I have some
> local modules installed in "~myname/lib/python"; these include
> "MySQLdb" and "M2Crypto".
>    Since this is running as "nobody", I append
> /home/myname/lib/python
> to sys.path.
>    Within the CGI programs,
> import MySQLdb # works fine
> import M2Crypto # works fine
> import SSL # "No module named SSL"
> The problem is that SSL is in a subdirectory of the M2Crypto directory,
> and that's not being searched.
And should *not* be searched, unless the importing module is itself in the 
M2Crypto directory.

> I can execute "import M2Crypto.SSL",
> but that doesn't have the same effect; it puts SSL in a different
> place in the namespace.  I'm trying to avoid that; it causes obscure
> aliasing problems.
You *could* do: from M2Crypto import SSL, but I think this is not your 

>    On Python 2.4 under Windows 2000, importing from a subdirectory
> appears to work.  Is that a Python 2.3.4 thing, or a Linux thing,
> or something else?
No, it should not work as you describe it. Either you have another SSL 
module in another place, or sys.path includes the M2Crypto directory.
On your 2.4 Windows, try this:
import sys
import SSL
print SSL.__file__
print sys.path
and see what happens

More information about the Python-list mailing list