我有一个模块blah.time
,我会在正常的时间和日期操作中进行一些健全性检查和包装函数:
import time
def sleep(n):
time.sleep(n)
当我调用sleep
时,它只会引发最大递归错误。我猜测命名空间是错误的,所以我尝试使用import time as _time
,但我仍然得到同样的错误。
如何从我自己的模块中引用系统time
模块以防止此命名空间冲突?
答案 0 :(得分:14)
添加from __future__ import absolute_import
作为文件的第一行。
这会强制所有进口都是绝对的而不是相对的。因此import time
将导入标准模块,以导入您使用的本地模块from . import foobar
答案 1 :(得分:3)
我会阅读http://docs.python.org/whatsnew/2.5.html#pep-328-absolute-and-relative-imports,然后使用from __future__ import absolute_import
。
HTH
答案 2 :(得分:0)
正在发生的事情是您的time
模块正在影响系统time
模块。解决此问题的最简单方法是将模块重命名为time
以外的其他内容。