新项目开始了,(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

python import 模块异常问题的更多相关文章

  1. Python import模块

    import模块 一.模块介绍 1.定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能), 本质就是.py结尾的python文件(文件名:test.py,对应的模块名:t ...

  2. python import模块熟悉方法

    python import导入的可用模块很多,新增速度较快,无法一次性全部掌握. 掌握熟悉一种模块的方法是非常有价值的技能. 探究模块可以从python解释器入手,具体流程记录如下: 以os模块为例: ...

  3. python import模块的搜索路径

    当在py代码中import所依赖的模块时, python是从哪里找到这些模块呢,即模块的搜索路径是啥? 默认情况下,Python解释器会搜索当前目录.所有已安装的内置模块和第三方模块,搜索路径存放在s ...

  4. 修改python import模块中的变量

    可以直接通过 模块名.变量名=xx 的方式修改模块中的全局变量,测试代码如下 模块:test_model.py x = 111 def inc_x(): global x x = x + 1 测试脚本 ...

  5. 获取 python import模块的路径

    import a_module print a_module.__file__ 上述代码将范围 .pyc 文件被加载的路径,如果需要跨平台解决方案,可用下面代码: import os path = o ...

  6. python import cv2异常(dll load fail / windows server 2008)

    最近服务器迁移,从得win7系统迁移到云服务器器上的windows server2008系统,迁移过程中安装Python的opencv一直出错,不管是用whl安装或者是在线pip安装都报错,尝试打包成 ...

  7. python高级-模块(14)

    一.python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include <math.h>引入math.h这个头文件,否则是无法正常进行调用的. ...

  8. Python import / pyd / dll

    使用Python import 模块时, 先会在模块的搜索path里依次搜索(前面会覆盖之后出现的同名模块),次序为: 1. 程序的主目录(交互模式下当前的工作目录或 脚本文件所在的目录) 2. 环境 ...

  9. 【Python五篇慢慢弹(4)】模块异常谈python

    模块异常谈python 作者:白宁超 2016年10月10日12:08:31 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondo ...

随机推荐

  1. Flex 加载tiff

    gis系统常常要加载tiff,因为好多土地证书,各种文件都是扫描件,如果你是用as来写的前台,怎么加载呢,顺便说下用插件AlternaTIFF也是可以得不过浏览器加载这么多插件是不太好的. 首先TIF ...

  2. nodejs & nodemailer

    nodejs & nodemailer https://www.npmjs.com/package/nodemailer 上面的連接裏面 有有一個例子: 可以直接拿來用: 安裝依賴,在pack ...

  3. Thinkphp源码分析系列(二)–引导类

    在上一章我们说到,ThinkPHP.php在设置完框架所需要的变量和调教好环境后,在最后调用了  Think\Think::start();  即Think命名空间中的Think类的静态方法start ...

  4. 银行ATM机工作流程模拟编程

    [编程内容] 编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程.依据帐户信息:姓名.帐号.密码.余额,完成ATM机功能:登录.显示余额.取款.修改密码. ...

  5. SQL Server开启READ_COMMITTED_SNAPSHOT

    --查询数据库状态 select name,user_access,user_access_desc,     snapshot_isolation_state,snapshot_isolation_ ...

  6. Web开发新时代

    Web1.0===主流技术:HTML+CSS Web2.0===主流技术:Ajax(Javascript/DOM/异步数据请求) Web3.0===主流技术:HTML5+CSS3 HTML5亮点:Ca ...

  7. C++ dll 通用dll编写

    头文件 extern "C" _declspec(dllexport)void AddFunction(); cpp文件 extern "C" _declspe ...

  8. nullcon HackIM 2016 -- Programming Question 1

    So you reached Delhi and now the noise in your head is not allowing you to think rationally. The Nos ...

  9. android及IOS的测试中容易疏漏或者测漏的点——持续更新

    1.控件的生命周期——控件消隐之后,会不会依然可点,导致出现进一步的响应?这个之前没想过,之后需要加入到测试点中 2.在登录界面同时出现弹窗: 如:特殊情况下,同时出现弹窗,又刚好退出登录,因此登录界 ...

  10. CSS3样式问题

    empty-cells 属性设置是否显示表格中的空单元格 tr:nth-child(even)偶数行的表格 li:nth-child(20)指定位置 2016-09-2813:23:45