On 10/8/05, mario ruggier <[EMAIL PROTECTED]> wrote:
> Why might this be?
>
> $ python
> Python 2.4.2 (#1, Oct 3 2005, 16:22:31)
> [GCC 3.3 20030304 (Apple Computer, Inc. build 1495)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import quixote
> >>> from quixote import server
> >>> quixote.server
> <module 'quixote.server' from
> '/usr/local/lib/python2.4/site-packages/quixote/server/__init__.pyc'>
> >>> ^D
> $ python
> Python 2.4.2 (#1, Oct 3 2005, 16:22:31)
> [GCC 3.3 20030304 (Apple Computer, Inc. build 1495)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import quixote
> >>> quixote.server
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> AttributeError: 'module' object has no attribute 'server'
> >>> quixote.__version__
> '2.2'
> >>>
Python's import statement really does two different things.
from MODULE import SYMBOL
from PACKAGE import MODULE
So far so good. But if you have a package inside a package, as in
quixote/server/simple_server.py), you cannot do:
import PACKAGE
PACKAGE.PACKAGE # No, the subpackage has not been imported.
# PACKAGE contains only the variables defined in
# PACKAGE/__init__.py .
What you want to do is:
import quixote
import quixote.server # Or "from quixote import server".
This loads only the variables in quixote/server/__init__.py . If you
want to refer to a module in the quixote/server package, you have to
import it separately.
import quixote.server.simple_server
or
from quixote.server import simple_server
or
from quixote.server.simple_server import run
--
Mike Orr <[EMAIL PROTECTED]> or <[EMAIL PROTECTED]>
_______________________________________________
Quixote-users mailing list
[email protected]
http://mail.mems-exchange.org/mailman/listinfo/quixote-users