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