我想调用位于另一个目录中的另一个模块。我的代码结构是
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)提前致谢。
答案 0 :(得分:5)
import sys
sys.path.append('PathToModule')
import models.user
答案 1 :(得分:1)
如果从tests目录运行user_test.py,它将无法找到models包。但是,如果从flask_beginner目录运行它,它将能够找到该模块。原因是您执行脚本的目录被附加到python路径,因此它可以找到项目中的所有模块。
答案 2 :(得分:1)
当你运行import <module_name>
时,Python在PythonPath
变量的所有目录中搜索具有该名称的模块,如果找到它,则导入它。当前目录(即运行脚本的目录)通常位于PythonPath
中,因此大多数脚本都能够找到位于同一目录中的模块。
如果需要导入位于不同目录中的模块,则需要将该目录添加到PythonPath中。您可以按如下方式执行此操作:
import sys
sys.path.append(<the_path_to_the_module>)
(当然,您应该使用正确的路径替换<the_path_to_the_module>
,在这种情况下,路径为'../models/user.py'
)