2015-06-02 100 views
0

我有一個應用程序。的文件夾結構(只是一部分[從導軌採取=)])如下:Python中的奇怪導入行爲

/app 
    __init__.py 
    /handlers 
    __init__.py 
    application_handler.py 
    pages_handler.py 
/config 
    __init__.py 
    routes.py 
server.py 

該應用程序的內容/ INIT的.py是:

from config.routes import HANDLERS 

app = Application(
    handlers=HANDLERS, 
    debug=DEBUG, 
    autoreload=AUTORELOAD, 
    template_path=TEMPLATES_PATH, 
    static_path=STATIC_PATH, 
) 

的內容配置/ routes.py是:

from app.handlers.pages_handler import AboutPageHandler 

HANDLERS = [ 
    (r"^/about$", AboutPageHandler), 
] 

如果我運行

python server.py 

一切正常,應用程序啓動。但是,例如,如果我開始IPython中,然後輸入:

from config.routes import HANDLERS 

我會看到

ImportError: cannot import name HANDLERS 

任何人都可以解釋這樣的行爲?

+0

如果你導入並打印'config.routes'? –

+0

明白了。這種導入導致遞歸導入 –

回答

0

已解決。

在這種情況下,導入語句會導致遞歸導入。我不知道Python會導入__init__.py的內容