AttributeError: объект «модуль» не имеет атрибута «testmod» Python doctest

Всякий раз, когда я пытаюсь выполнить doctest в python, в основном всякий раз, когда я запускаю код

if __name__ =="__main__":
   import doctest
   doctest.testmod()

Я получаю этот ответ от переводчика

AttributeError: объект «модуль» не имеет атрибута «testmod»

Я могу нормально запустить этот код, но всякий раз, когда я запускаю его на своей машине с Windows, он не работает.

Моя машина работает под управлением Windows, у них OS X, но работает на Python 2.7.5.

Спасибо :)


person Johnny Mann    schedule 17.03.2015    source источник


Ответы (3)


Убедитесь, что вы не пытаетесь сохранить тестовый файл как doctest.py. Оператор печати, предложенный выше, покажет это. Если имя файла doctest.py, переименуйте его и повторите попытку.

person Andrei K.    schedule 19.07.2018

AttributeError: объект 'module' не имеет атрибута 'testmod'

Очевидно, что импортируемый вами модуль doctest не имеет метода testmod().

Возможными причинами могут быть:

  • У вас есть более одного модуля doctest в файле lib.
  • и это другой (без метода testmod()), который импортируется в результате import doctest.

Решение. Найдите путь к стандартному модулю doctest.

if __name__ =="__main__":
   import doctest
   if doctest.__file__  == "/path/to/standard/doctest-module":
       doctest.testmod()
person Nabeel Ahmed    schedule 17.04.2015

Похоже, вместо стандартного импортируется другой модуль с именем doctest.

Чтобы узнать, какой именно модуль импортируется, просто добавьте следующее print:

if __name__ =="__main__":
   import doctest
   print doctest.__file__  # add this
   doctest.testmod()

print должен произвести что-то похожее на C:\Python27\lib\doctest.pyc, в зависимости от местоположения и используемой версии Python. Любой другой вывод означает, что вы импортируете неправильный модуль, и объясните, почему вы получаете ошибку.

person asherbar    schedule 31.03.2015