Python DNS模块导入错误

Python DNS模块导入错误,python,python-2.7,module,resolver,Python,Python 2.7,Module,Resolver,我一直在使用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 s

我一直在使用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—版本 Python 2.7.3 $sudo pip安装dnspython 下载/解包dnspython 下载dnspython-1.11.1.zip(220Kb):下载220Kb 正在为包dnspython运行setup.py egg\u info 安装收集的软件包:dnspython 正在为dnspython运行setup.py安装 已成功安装dnspython 清理。。。 $python Python 2.7.3(默认值,2013年9月26日,20:03:06) [GCC 4.6.3]关于linux2 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>导入dns 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 ImportError:没有名为dns的模块 更新了python版本和pip版本命令的输出

$ 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) $whichpython /usr/bin/python $python—版本 Python 2.7.3 $pip--版本 来自/usr/lib/python2.7/dist-packages(python 2.7)的PIP1.0 非常感谢你的帮助


注意:-我在新机器上安装了防火墙。我不确定这是否会影响进口。但是我尝试过禁用它,但它似乎仍然不起作用。

我在dnspython上遇到了同样的问题

我的解决方案是从他们的官方GitHub项目构建源代码

所以我的步骤是:

git clone https://github.com/rthalley/dnspython
cd dnspython/
python setup.py install
完成此操作后,我能够导入
dns
模块

编辑


似乎pip安装不适用于此模块。按说明从源代码安装。

很可能您正在使用的pip版本没有安装到您正在使用的python版本。我有一个盒子,就是这个盒子

尝试:

如果看起来pip与您的python不匹配,那么您可能有类似于我在我的盒子上找到的python和pip的多个版本

[root@sdpipeline 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:


也许有更好的方法可以做到这一点,我也在学习自己的方法,但这就是我解决问题的方法——希望能有所帮助

我使用
pip install dnspython
在我的Ubuntu盒上安装了dnspython 1.11.1。我能够导入dns模块,没有任何问题


我在基于Ubuntu的服务器上使用Python 2.7.4。

您也可以使用以下命令安装带有pip的软件包:


pip安装git+https://github.com/rthalley/dnspython

关于Debian 7喘息,我必须做:

pip install --upgrade dnspython

即使安装了python dns包。

此问题也可能由赛门铁克端点保护(SEP)产生。 我怀疑大多数EPP产品可能会影响脚本的运行

如果禁用SEP,脚本将立即运行


因此,您可能需要更新SEP策略,以不阻止python脚本访问内容。

我通过卸载然后用PIP重新安装dnspython模块解决了这个问题

$ pip uninstall dnspython
在pycache中的长文件列表之后,键入y继续卸载。完成类型后:

$ pip install dnspython

然后我运行了我的脚本,错误得到了解决。

我从github源代码安装了DNSpython 2.0.0,但运行“pip列表”显示了DNSpython 1.2.0的旧版本


只有在我运行了“pip uninstall dnspython”之后,它才起作用,删除了旧版本,只剩下2.0.0,然后“import dns”平稳运行

这里的一个可能原因可能是您的脚本错误了shebang(因此它没有使用来自VirtualNV的python)。我刚做了这个改变,效果很好:

-#!/bin/python
+#!/usr/bin/env python
或者忽略shebang,在venv中使用python运行脚本:

$ python your_script.py

我在使用“导入dns.resolver”时出错。我试过dnspython和py3dns,但都失败了。
dns不会安装。经过多次尝试,我安装了pubdns模块,它解决了我的问题。

在我的情况下,我已经在名为“dns.py”的文件中编写了代码,这与包冲突,我必须重命名脚本文件名。

我遇到了同样的问题,并解决了以下问题: 由于您已成功下载并安装了dnspython,因此

  • 进入文件夹dnspython
  • 您将找到dns目录,现在复制它
  • 然后将其粘贴到站点包目录中
  • 就这些。现在你的问题就解决了

    如果未安装dnspython,可以通过以下方式安装:

  • 转到python安装文件夹site packages目录
  • 在此处打开cmd并输入命令:
    pip安装dnspython

  • 现在,dnspython将成功安装。

    确定使用
    pip install dnspython

    (如果您使用conda first type
    activate
    ,然后进入base(在cmd中),然后键入上面的代码) 它将安装在anaconda站点包中,从cmd复制该站点包文件夹的位置,然后打开它。现在复制所有dns文件夹并将它们粘贴到python站点包文件夹中。它会解决这个问题


    事实上,我们的代码无法在python\site-package-bcz中找到指定的包,因为它在anaconda\site-package中。所以你必须复制它(而不是剪切)

    我在mac上导入时遇到过类似的问题。我安装了python 3.7.3 以下步骤帮助我解决了这个问题:

  • pip3卸载dnspython
  • sudo-H pip3安装dnspython
  • 导入dns

    导入dns.resolver

    如果您没有(或不想要)安装
    pip
    还有另一种方法。您可以通过使用本机OS软件包管理器安装软件包来解决此问题

    例如,对于基于Debian的系统,这将是命令:


    apt install python3 dnspython

    很可能是为另一个版本安装了dnspython
    $ python your_script.py