从包导入时,模块会引发名称错误

时间:2012-05-11 21:38:44

标签: python web2py python-module

我正在尝试将包含单行的模块import logging导入到我的web2py项目中。当我尝试从名为mymodules的包中导入模块时,我得到一个<type 'exceptions.NameError'> name 'logging' is not defined error,但是当我从包中取出模块并直接导入它时,它可以正常工作。

mymodule.py:

import logging

从顶级模块目录导入:
import mymodule - 工作正常

从包裹中导入:
from mymodules import mymodule - 获取名称错误

包没有任何问题 - 我有其他模块,我导入没有问题。不知道为什么会发生这种情况。

3 个答案:

答案 0 :(得分:1)

导入mymodule后,您必须引用mymodule.logging而不仅仅是logging

答案 1 :(得分:0)

首先,您不需要将文件扩展名.py添加到import语句中。所以它应该是:

import mymodule
mymodule.logging.info("Just some info")

安东尼是正确的,如果你想从那里使用日志记录,你必须通过mymodule.logging调用它。你也可以使用通配符导入但你只需要小心一点然后在mymodule中导入。

from mymodule import *
#now you can use logging directly
logging.info("Just some info")

答案 2 :(得分:0)

这是因为一些旧的.pyc文件仍然在包中 - 它们一定是导致错误的日志记录引用。一旦我清除它们,我的问题就解决了。 :S