2014-07-07 419 views
0

我在學習使用模塊來清理我的代碼。我遇到了範圍問題。我明白,當你導入一個模塊時,Python給這個模塊一個單獨的範圍。我相信這個答案是在某處的文檔中,但我似乎無法找到它。導入需要其他包的模塊

我創建模塊info.py,其包括功能getStuff

def getStuff(key): 
    db_info = 'db_location' + 'db_credentials' 
    db = create_engine('postgresql://' + db_info) 
    connection = db.connect() 
    data = do_sql_stuff(SELECT things FROM stuff) 
    return(data) 

然後在Python解釋,I輸入

>>>> import sqlalchemy 
>>>> import info 
>>>> data = getStuff(key) 

和得到的錯誤消息

NameError: name 'create_engine' is not defined 

這告訴我info.py沒有接受ss到SQLAlchemy。如果我在解釋器中定義getStuff,它會正確運行。

如何設置模塊以便訪問其他軟件包?

回答

0

正如我所料,這個問題有一個非常簡單的解決方案。所有需要做的就是將import語句放在info.py文件的頂部。