我正在尝试将包含单行的模块import logging
导入到我的web2py项目中。当我尝试从名为mymodules
的包中导入模块时,我得到一个<type 'exceptions.NameError'> name 'logging' is not defined error
,但是当我从包中取出模块并直接导入它时,它可以正常工作。
mymodule.py:
import logging
从顶级模块目录导入:
import mymodule
- 工作正常
从包裹中导入:
from mymodules import mymodule
- 获取名称错误
包没有任何问题 - 我有其他模块,我导入没有问题。不知道为什么会发生这种情况。
答案 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