Ошибка импорта модуля 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)
Большое спасибо за вашу помощь.
Примечание. - На новом компьютере установлен брандмауэр. Я не уверен, что это должно повлиять на импорт. но я попытался отключить его, и все же он не работает.
Ответы
Ответ 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", он конфликтует для пакета, я должен переименовать имя файла сценария.