1

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

我的模块.py:

import logging

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

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

包没有问题 - 我在那里有其他模块,我可以毫无问题地导入。不知道为什么会这样。

4

3 回答 3

1

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

于 2012-05-11T22:29:53.807 回答
0

首先,您不需要在.py导入语句中添加文件扩展名。所以应该是:

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

不过 Anthony 是正确的,如果您希望能够从那里使用日志记录,则必须通过调用它。mymodule.logging您也可以使用通配符导入,但您只需要注意随后在 mymodule 中导入的内容。

from mymodule import *
#now you can use logging directly
logging.info("Just some info")
于 2012-05-12T02:27:52.823 回答
0

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

于 2012-05-12T13:28:15.897 回答