2012-12-04 40 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>)