2012-12-04 120 views
3

可能重複:
How to import the src from the tests module in python如何導入模塊

我想打電話給其位於另一個目錄另一個模塊。我的代碼結構是

flask_beginner/ 
    app.py 
    models/ 
     __init__.py 
     user.py 
    tests/ 
     __init__.py 
     user_test.py 

我想從user_test.py調用用戶模塊。我user_test.py是這樣的..

import models.user 
.... 

但它引發錯誤,任何模塊名爲models.user

你有什麼想法? 我的Python版本是2.7.2。(帶有virtualenv)

在此先感謝。

回答

1

如果您正在從tests目錄運行user_test.py,它將無法找到模型包。但是,如果您從flask_beginner目錄運行它,它將能夠找到該模塊。原因是您從中執行腳本的目錄會附加到python路徑中,因此它可以找到您項目中的所有模塊。

+0

感謝我的理解(其中,當然,你應該用正確的路徑,其中,在這種情況下,將'../models/user.py'更換<the_path_to_the_module>)。我從我的根目錄運行模塊,它成功了!謝謝。 – nobinobiru

5
import sys 
sys.path.append('PathToModule') 
import models.user 
1

運行import <module_name>時,Python會在PythonPath變量的所有目錄中搜索具有該名稱的模塊,如果發現它,則會導入它。當前目錄(即腳本運行的目錄)通常位於PythonPath中,因此大多數腳本將能夠找到位於同一目錄中的模塊。

如果您需要導入位於不同目錄中的模塊,則需要將該目錄添加到PythonPath。你可以這樣做如下:

import sys 
sys.path.append(<the_path_to_the_module>)