ImportError: нет модуля с именем dns.exception

Я пытаюсь использовать dnspython в своем коде, но когда он попадает в оператор импорта, я получаю следующую ошибку:

>>> import DNS.resolver
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\python27\lib\site-packages\DNS\resolver.py", line 31, in <module>
    import dns.exception
ImportError: No module named dns.exception

Я попытался установить с помощью pip, easy_install и вручную из репозитория git, но ничего не помогло. Есть идеи??

Код:

import DNS.resolver

if __name__ == "__main__":

    domain = 'hotmail.com'
    for x in dns.resolver.query(domain, 'MX'):
        print x.to_text()

3 ответа

Еще одно, что вы можете сделать, чтобы исправить проблемы с этим пакетом, - это снова установить python-dnspython с помощью Synaptic. (Нет ли предыдущих проблем с двуличностью)

Иногда, если вы попытаетесь установить этот пакет с помощью pip, могут возникнуть такие проблемы:

Команда python setup.py egg_info завершилась ошибкой с кодом ошибки 1 в / tmp / pip_build_root / dnspython Сохранение журнала отладки для сбоя в /root/.pip/pip.log

Использование Synaptic очищает старые файлы и устанавливает новые из этого пакета. Я знаю, что эта проблема решена, но я хотел бы добавить больше информации об этом:)

Во-первых, ваш код должен быть: import dns.resolver,

Кажется, есть проблема установки dnspython с помощью pip, вы должны клонировать репозиторий dnspython с помощью git и запустить файл setup.py следующим образом:

git clone https://github.com/rthalley/dnspython
cd dnspython\
python setup.py install

Если на вашем компьютере не установлен git, вы можете просто загрузить репозиторий вручную.

Это потому, что имена пакетов и модулей строчные (см. PEP 8). Это работает просто отлично:

import dns.resolver
import dns.exception

Вы также должны быть осторожны, чтобы ни одно из ваших имен файлов *.py не конфликтовало с пакетом dns. Ваш *.py файл не должен называться dns.py. Обратите также внимание на файлы *.pyc.

Другие вопросы по тегам