2012-10-04 2 views
3

У меня есть модуль blah.time где я сделать некоторые проверки вменяемости и функции оболочки вокруг нормального времени и даты операций:импорта питон пакет, когда модуль такое же имя

import time 

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

Когда я называю sleep, он просто бросает максимальную рекурсию ошибка. Я предполагаю, что пространство имен неверно, поэтому я попытался использовать import time as _time, но я все равно получаю ту же ошибку.

Как я могу ссылаться на модуль time из моего собственного модуля, чтобы предотвратить конфликт этого пространства имен?

ответ

12

Добавить from __future__ import absolute_import в качестве первой строки в вашем файле.

Это приведет к тому, что все импортные данные будут абсолютными, а не относительными. Так import time будет импортировать стандартный модуль, импортировать локальный модуль, который вы хотите использовать from . import foobar

0

То, что происходит в том, что ваш time модуль затенение системе time модуля. Самый простой способ решить эту проблему - переименовать свой модуль на что-то помимо time.

Смежные вопросы