Простой кросс-импорт в python

Я хочу разделить код в разных классах и поместить их в разные файлы. Однако эти классы зависят друг от друга.

main.py:

from lib import A, B

def main():
    a = A()
    b = B()
    a.hello()
    b.hello()

if __name__ == '__main__':
    main()

Библиотека / _в этом_.py:

from a import A
from b import B

Библиотека / a.py:

import lib.B

class A():
    def __init__(self):
        print "A"

    def hello(self):
        print "hello A"
        b = B()

Библиотека / b.py:

import lib.A

class B():
    def __init__(self):
        print "B"

    def hello(self):
        print "hello B"
        a = A()

Возможно ли это сделать в Python?

РЕДАКТИРОВАТЬ:

Я получаю это сообщение об ошибке:

pydev debugger: starting
Traceback (most recent call last):
  File "eclipse-python/plugins/org.python.pydev_2.7.1.2012100913/pysrc/pydevd.py", line 1397, in 
    debugger.run(setup['file'], None, None)
  File "eclipse-python/plugins/org.python.pydev_2.7.1.2012100913/pysrc/pydevd.py", line 1090, in run
    pydev_imports.execfile(file, globals, locals) #execute the script
  File "main.py", line 2, in 
    from lib import A, B
  File "lib/__init__.py", line 1, in 
    from a import A
  File "lib/a.py", line 1, in 
    import lib.B
ImportError: No module named B

Ответы на вопрос(4)

Ваш ответ на вопрос