Diez B. Roggisch wrote:
Geert Vancompernolle schrieb:
Hi,

I have the following path construction:

./src/__init__.py
    /main.py
    /modules/__init__.py
            /application.py
    /ui/__init__.py
       /mainwindow/__init__.py
                  /mainwindow.py

Now I want to call the method 'MainWindow' in the module 'mainwindow', from the module 'application'.

I'm having the following import statement in 'applications.py':

from .. ui.mainwindow.mainwindow import MainWindow

That doesn't work. I've also tried many other combinations like from ..ui.mainwindow... but none of them work.

I always get the following error:

"Attempted relative import beyond toplevel package"

How can I import the method 'MainWindow' from 'mainwindow' into 'application', using the explicit relative import rules?

Or is there a better way to do this?

Rename "src" to "myapp", and start main.py from above that. That should work.



Diez
--
http://mail.python.org/mailman/listinfo/python-list

That trick did it, thanks!

But I have one more unclarity about relative import rules. Here <http://docs.python.org/tutorial/modules.html?highlight=modules>, one can find an explanation about modules in the official Python 2.6.1 documentation.

In that article, there's an example of importing relative packages (in the section "Packages").

I see the following examples:

from . import echo
from .. import formats
from ..filters import equalizer


Applying that mechanism on my application, I'm using the following construction 
(see my initial email):

"from .. ui.mainwindow.mainwindow import MainWindow"

But using "from ..ui.mainwindow.mainwindow import MainWindow" seems to be giving exactly the same 
result (mind the lacking space between ".." and "ui").

So, what's the difference (if there is one) between "from .. ui.mainwin..." and 
"from ..ui.mainwin..." (again, mind the difference in space)?

I guess there's a difference, otherwise it would not be given as an example in 
the Python documentation.  But then, why is the application (at first sight) 
behaving the same and also working fine?


--
Best rgds,

Geert
________________________________________________

*Use EcoCho <http://www.ecocho.com>: environmentally friendly search the internet!*
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to