我正在尝试在我的代码中使用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()
答案 0 :(得分:3)
您可以采取的另一件措施是使用Synaptic再次安装 python-dnspython 。 (是否以前没有关于两面派的问题)
有时,如果您尝试使用 pip 安装此软件包,可能会出现以下问题:
命令python setup.py egg_info失败,错误代码为1 / tmp / pip_build_root / dnspython存储失败的调试日志 /root/.pip/pip.log
使用Synaptic清除旧文件并从该软件包安装新文件。我知道这个问题已经解决,但我想添加更多相关信息:)
答案 1 :(得分:2)
首先,您的代码应为:import dns.resolver
。
使用pip安装 dnspython 时似乎存在问题,您应该使用git克隆 dnspython 存储库并运行文件 setup.py 如下:
git clone https://github.com/rthalley/dnspython
cd dnspython\
python setup.py install
如果您的计算机上没有安装git,您可以手动下载存储库。
答案 2 :(得分:1)
那是因为包和模块名称是小写的(参见PEP 8)。这很好用:
import dns.resolver
import dns.exception
您还应该注意,您自己的* .py文件名都不会与dns包冲突。您的* .py文件不应命名为dns.py.还要注意* .pyc文件。