4

我有一个模块blah.time,我在其中围绕正常的时间和日期操作进行一些健全性检查和包装功能:

import time

def sleep(n):
    time.sleep(n)

当我调用时sleep,它只会引发最大递归错误。我猜命名空间是错误的,所以我尝试使用import time as _time,但我仍然得到同样的错误。

如何time从我自己的模块中引用系统模块以防止此命名空间冲突?

4

3 回答 3

14

添加from __future__ import absolute_import为文件的第一行。

这将强制所有导入都是绝对的,而不是相对的。因此import time将导入标准模块,以导入您将使用的本地模块from . import foobar

于 2012-10-04T19:51:23.077 回答
3

我会阅读http://docs.python.org/whatsnew/2.5.html#pep-328-absolute-and-relative-imports然后使用from __future__ import absolute_import.

高温高压

于 2012-10-04T19:51:56.277 回答
0

发生的事情是您的time模块正在遮蔽系统time模块。解决此问题的最简单方法是将模块重命名为time.

于 2012-10-04T20:00:28.333 回答