2010-02-17 59 views
1

我建立這個目錄結構的Web應用程序:Python的麻煩導入模塊

app/ 
    __init__.py 
    config/ 
     __init__.py 
     db_config.py 
    models/ 
     __init__.py 
     model.py 
     datasources/ 
      __init__.py 
      database.py 
    ... 
    ... 

每個__init__.py文件具有

__all__ = ['', '', ...] 

,其中列出了在該.py文件與其相同的目錄。因此,應用程序/ __ init__.py是空的,應用程序/配置/ __ init__.py有

__all__ = ['db_config'] 

等在app /模型/數據源/ database.py,我似乎無法從應用程序/配置導入什麼/ db_config.py。我試過

import app.config.db_config 
import config.db_config 
from app.config.db_config import * 

但他們都沒有工作。如果任何人有任何想法,我會非常感激聽到他們。

此外,我很抱歉如果這是一個重複的問題,但我不確定究竟要搜索什麼。

+0

你的'sys.path'告訴你什麼? – jldupont 2010-02-17 18:37:42

回答

2

import app.config.db_config是最好的方法(避免非絕對導入並永遠不會使用導入*),並且爲此工作,app目錄應該位於sys.path。如果不是,則將目錄添加到您的目錄PYTHONPATH或將項目移動到某處。