2015-03-17 2 views
1

Если когда-нибудь я пытаюсь doctest в питона, в основном, когда я запускаю кодAttributeError: «модуль» объект не имеет атрибута «testmod» Python doctest

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

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

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

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

Моя машина работает под управлением ОС Windows, но работает под управлением python 2.7.5.

Спасибо :)

ответ

1

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

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

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

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

1

AttributeError : 'module' object has no attribute 'testmod'

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

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

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

Решение: Посмотрите на пути стандартного doctest модуля.

if __name__ =="__main__": 
    import doctest 
    if doctest.__file__ == "/path/to/standard/doctest-module": 
     doctest.testmod()