新项目开始了,(tornado,python)
结果出现了一个比较诡异的问题。
import 自己的在conf文件夹下配置文件settings的时候,
from conf.settings import *
在handler层引用成功,但是在model文件夹下,import该文件报错,settings not found。
根据以往经验,import 模块not found,一般是路径错误,文件名错误,或者该文件夹下缺少__init__.py文件。
检查了这三个都没有问题,于是纠结了好久。。。。
问了同事,发现出问题的原因是,有人在该文件夹下添加了一个名为conf.py的文件。
这就导致,python import的过程中,从相同的文件夹下conf.py 去查找名为settings的模块。。。。
而不是在conf文件夹下查找settings.py文件。。。。
所以导致问题的原因就是python import的顺序问题。
默认import 的过程,是先查询该模块是否是内建模块,
其次是,该文件的同级目录查找该模块,找到则返回,
接下在,回归到项目的根目录文件,根据sys.path的顺序查找该文件,直到找到第一个,立即返回。
注:多个文件import同一个moudle,只会生成一个对象。
这篇blog写的不错~http://www.iteye.com/topic/576735