2014-02-08 175 views
13

我一直在使用python dns module.I试图在新的Linux安装上使用它,但模块没有加载。 我试图清理和安装,但安装似乎并没有工作。Python DNS模块导入错误

 

    $ 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版本和PIP version命令

 

    $ 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

在您的系统上最有可能安装了Python的另一个版本的dnspython。例如,一些系统默认安装了Python 2.4。 – bernie

+0

您可以尝试其他SO问题的两个最佳答案之一:http://stackoverflow.com/q/2812520/42346 – bernie

+0

谢谢@bernie。 我尝试了其他堆栈溢出的答案,但我想我没有安装多个版本的python。 此外,安装匹配的Python版本的点。 我已经编辑了上面的答案来显示pip版本和python版本。 – ayushmad

回答

18

我遇到了与dnspython相同的问题。

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

所以我的步骤是:

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

这样做后,我能够导入dns模块。

编辑

看来PIP安装该模块不能正常工作。按照说明从源安装。

+0

谢谢@DanGar 我能够构建包并立即安装它的工作。 但是,您是否知道是否因为模块或安装过程中的某些故障而发生这种情况。 – ayushmad

+0

很高兴它的工作:)这是最有可能的安装我们的安装问题,因为我有你的方法在其他开发机器上工作。 – DanGar

+0

对于Debian中的python3'sudo apt-get install python3-dnspython' –

0

很可能您正在使用的pip版本并未安装到您正在使用的python版本中。我有一个框,在这种情况下...

尝试:

蟒蛇--version

PIP -V

如果它看起来这蟒蛇像PIP不符合你的Python,那么你可能有像我在盒子上发现的多个版本的Python和PIP ...

[根@ sdpipeline学生]:#定位斌/ PIP

/家庭/学生/班/斌/ PIP

/home/student/class/bin/pip-2.7

在/ usr/bin中/ PIP

在/ usr/bin中/ PIP-蟒蛇

只要我使用/ home /学生/班/斌/ PIP(2.7是matche这是我的Python版本),然后我的导入工作正常。

您也可以尝试从源代码安装PIP:http://www.pip-installer.org/en/latest/installing.html

有可能是一个更好的方式来做到这一点,我还在学习我的方式太绕,但这是我如何解决它 - 希望它帮助!

+0

谢谢@scottsanchez 我已经更新了上面的帖子来显示pip版本和python版本的输出。 但似乎我只有一个python安装。 我会尝试从源代码安装pip并查看它是如何工作的。 – ayushmad

2

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

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

0

您还可以使用此命令安装与PIP:

pip install git+https://github.com/rthalley/dnspython

+0

这不起作用 – marbel

+0

你能解释为什么它不适合你吗? – CashWasabi

0

在Debian 7喘息,我不得不这样做:

pip install --upgrade dnspython 

即使蟒蛇的DNS包得安装。

0

Symantec Endpoint Protection(SEP)可能会生成此问题。 我怀疑大多数EPP产品可能会影响您的脚本运行。

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

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

1

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

$ pip uninstall dnspython 

在pycache中的长文件列表后,输入y以继续卸载。完整类型后:

$ pip install dnspython 

然后我运行我的脚本,错误已解决。