导入错误:没有名为dns.query的模块
我正在尝试在Windows上运行一段Python代码,这段代码包含以下几行:
from scapy import *
import random
import socket
import dns.query
但是当我从命令行编译它时,出现了以下错误:
C:\Python25 > attack.py
Traceback <most recent call last>:
File "C:\Python25\attack.py", line 4 , in <module>
import dns.query
ImportError: No module named dns.query
这可能是什么错误呢?我该怎么解决这个问题?是因为路径的问题,还是因为dns.query模块没有编译成功?
1 个回答
这意味着你还没有安装 dnspython。
安装 dnspython 有两种方法:
1. 好的方法:
安装任何模块,最简单的方法是先安装 setuptools。setuptools 有点像 Ubuntu 系统中的 "apt-get",你只需要输入 "easy_install ",它就会帮你下载并安装所需的模块。要安装 setuptools,可以从 https://pypi.python.org/pypi/setuptools 下载源文件。
下载后解压缩,解压后的文件夹里会有一个 setup.py 文件。接下来运行:
python setup.py install
这会在你的系统中安装 setuptools。
安装完成后,你可以在 c:\python2x\Scripts\ 目录下找到一个可执行文件 easy_install.exe(2x 是 Python 的版本号,比如 26、27 等)。
现在要安装 dnspython,只需运行:
c:\python2x\Scripts\easy_install.exe dnspython
这样应该就能解决你的问题,之后你的脚本就可以正常运行了。
你还可以把 c:\python2x\Scripts 加入到 Windows 的 PATH 中,这样每次安装模块时就不需要输入完整路径了。
2. 不好的方法:
虽然这种方法可能会失败,如果 dnspython 依赖的一些模块没有安装的话。
你可以从 http://www.dnspython.org/kits/1.10.0/ 下载 dnspython 的源文件并解压缩。然后进入解压后的文件夹,运行:
python setup.py install