2009-09-10 2 views
1

Я пытаюсь использовать doctest из примера из http://docs.python.org/library/doctest.htmlОшибка с помощью питона doctest

Но когда я бегу

python example.py -v 

Я получаю

Traceback (most recent call last): 
    File "example.py", line 61, in <module> 
    doctest.testmod() 
AttributeError: 'module' object has no attribute 'testmod' 

Но я могу импортировать doctest в питона интерактивной оболочки и также можно использовать doctest.testmod(). Я искал в google и не нашел решение.

Python версии 2.5.1 на Max OSX

ответ

5

Очевидно, что объект модуля doctest, который у вас есть под рукой, не является нормальным, неподдельным, полученным от import doctest из стандартной библиотеки. Печать doctest.__file__sys.stdout.flush() после этого, чтобы убедиться, что вы действительно видите результаты ;-) до того, как исключение из линии-61 сообщит вам, ГДЕ, откуда поступает модуль doctest.

Если вы покажете нам example.py, а также этот вывод, мы можем указать, что именно вы можете делать неправильно, если это еще не стало для вас очевидным.

+3

Очень спасибо! Это потому, что я назвал скрипт как doctest.py раньше, и он не работает, поэтому я изменил example.py. Но doctest.pyc все еще там, вместо этого импортируется doctest.pyc. – noomz

+0

Python перекомпилит pyc, если это необходимо и возможно, но, да, если у него есть pyc и нет источника для него, тогда он просто будет использовать существующий файл pyc. –

0

Попробуйте вставив

print doctest, dir(doctest) 

перед строкой 61. Это покажет вам расположение doctest модуля, и какие атрибуты у него есть. Вы можете сделать это, чтобы убедиться, что в вашем модуле doctest нет ничего плохого.