Подтвердить что ты не робот

Ошибка импорта модуля DNS Python

Я использую модуль python dns. Я пытался использовать его на новой установке Linux, но модуль не загружается. Я попытался очистить и установить, но установка, похоже, не работает.

    $ python --version
    Python 2.7.3
    $ sudo pip install dnspython
    Downloading/unpacking dnspython
      Downloading dnspython-1.11.1.zip (220Kb): 220Kb downloaded
      Running setup.py egg_info for package dnspython

    Installing collected packages: dnspython
      Running setup.py install for dnspython

    Successfully installed dnspython
    Cleaning up...
    $ python
    Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import dns
    Traceback (most recent call last):
      File "", line 1, in 
    ImportError: No module named dns

Обновлен вывод версии python и команды версии протокола

    $ which python
    /usr/bin/python
    $ python --version
    Python 2.7.3
    $ pip --version
    pip 1.0 from /usr/lib/python2.7/dist-packages (python 2.7)

Большое спасибо за вашу помощь.

Примечание. - На новом компьютере установлен брандмауэр. Я не уверен, что это должно повлиять на импорт. но я попытался отключить его, и все же он не работает.

4b9b3361

Ответ 1

Я столкнулся с той же проблемой с dnspython.

Мое решение состояло в том, чтобы создать источник из своего официального проекта GitHub.

Итак, мои шаги:

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

После этого мне удалось импортировать модуль dns.

EDIT

Кажется, что для этого модуля не работает pip install. Установите из источника, как описано.

Ответ 2

Вы также можете установить пакет с помощью pip с помощью этой команды:

pip install git+https://github.com/rthalley/dnspython

Ответ 3

Я решил это, удалив, а затем снова установив модуль dnspython с помощью PIP.

$ pip uninstall dnspython

После длинного списка файлов в pycache введите y, чтобы продолжить удаление. После полного типа:

$ pip install dnspython

Затем я запустил мой script, и ошибки были устранены.

Ответ 4

Я установил dnspython 1.11.1 в поле Ubuntu с помощью pip install dnspython. Я смог без проблем импортировать модуль dns

Я использую Python 2.7.4 на сервере под управлением Ubuntu.

Ответ 5

В Debian 7 Wheezy мне пришлось делать:

pip install --upgrade dnspython

даже если был установлен пакет python-dns.

Ответ 6

Очень возможно, что версия pip, которую вы используете, не устанавливается на версию python, которую вы используете. У меня есть коробка, где это так...

пытаться:

which python

python --version

pip -V

Если кажется, что pip не соответствует вашему питону, то у вас, вероятно, есть что-то вроде нескольких версий python и pip, которые я нашел на своей коробке...

[[email protected] student]# locate bin/pip

/home/student/class/bin/pip

/home/student/class/bin/pip-2.7

/usr/bin/pip

/usr/bin/pip-python

Пока я использую /home/student/class/bin/pip (2.7, что соответствует моей версии python на этой коробке), мой импорт работает нормально.

Вы также можете попробовать установить pip из источника: http://www.pip-installer.org/en/latest/install.html.

Возможно, есть лучший способ сделать это, я все еще изучаю свой путь, но вот как я решил это - надеюсь, это поможет!

Ответ 7

Эта проблема может быть вызвана Symantec End Point Protection (SEP). И я подозреваю, что большинство продуктов EPP могут потенциально повлиять на выполнение сценариев.

Если SEP отключен, скрипт будет запущен мгновенно.

Поэтому вам может потребоваться обновить политику SEP, чтобы не блокировать доступ к содержимому сценариев Python.

Ответ 8

Я установил DNSpython 2.0.0 из источника на github, но при запуске 'pip list' была показана старая версия dnspython 1.2.0

Это сработало только после того, как я запустил "pip uninstall dnspython", который удалил старую версию, оставив только 2.0.0, а затем "import dns" прошел гладко

Ответ 9

Одна из возможных причин может заключаться в том, что ваш скрипт имеет неправильный шебанг (поэтому он не использует python из вашего virtualenv). Я только что сделал это изменение, и оно работает:

-#!/bin/python
+#!/usr/bin/env python

Или проигнорируйте shebang и просто запустите скрипт с python в вашем venv:

$ python your_script.py

Ответ 10

Я получаю сообщение об ошибке при использовании "import dns.resolver". Я пробовал dnspython, py3dns, но они потерпели неудачу. днс не установится. После долгих попыток я установил модуль pubdns, и он решил мою проблему.

Ответ 11

В моем случае я написал код в файле с именем "dns.py", он конфликтует для пакета, я должен переименовать имя файла сценария.