1

我试图在我的代码中使用dnspython,但是当它到达 import 语句时,我收到以下错误:

>>> 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 repo 手动安装,但似乎没有任何效果。有任何想法吗??

代码:

import DNS.resolver

if __name__ == "__main__":

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

3 回答 3

3

解决此软件包问题的另一件事是使用 Synaptic 再次安装python-dnspython。(是否以前没有关于重复的问题)

有时,如果您尝试使用pip安装此软件包,可能会出现以下问题:

命令 python setup.py egg_info 在 /tmp/pip_build_root/dnspython 中失败,错误代码 1 在 /root/.pip/pip.log 中存储失败的调试日志

使用 Synaptic 会从该软件包中清理旧文件并安装新文件。我知道这个问题已经解决,但我想添加更多关于这个的信息:)

于 2014-09-19T14:10:00.530 回答
2

这是因为包和模块名称是小写的(参见PEP 8)。这工作得很好:

import dns.resolver
import dns.exception

您还应该小心,您自己的 *.py 文件名都不会与 dns 包冲突。您的 *.py 文件不应命名为 dns.py。还要注意 *.pyc 文件。

于 2014-09-04T13:18:49.167 回答
2

首先,您的代码应该是 : import dns.resolver

使用 pip安装dnspython似乎有问题,您应该使用 git克隆dnspython存储库并运行文件setup.py,如下所示:

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

如果您的机器上没有安装 git,您可以手动下载存储库。

于 2017-06-11T18:01:13.540 回答