Python DNS module import error

我只是一个虾纸丫 提交于 2019-11-30 00:28:31

问题


I have been using python dns module.I was trying to use it on a new Linux installation but the module is not getting loaded. I have tried to clean up and install but the installation does not seem to be working.


    $ 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

Updated Output of python version and pip version command


    $ 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)

Thanks a lot for your help.

Note:- I have firewall installed on the new machine. I am not sure if it should effect the import. but i have tried disabling it and still it does not seem to work.


回答1:


I ran into the same issue with dnspython.

My solution was to build the source from their official GitHub project.

So my steps were:

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

After doing this, I was able to import the dns module.

EDIT

It seems the pip install doesn't work for this module. Install from source as described.




回答2:


You could also install the package with pip by using this command:

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




回答3:


I solved this by uninstalling and then re-installing the dnspython module with PIP.

$ pip uninstall dnspython

After the long list of files within pycache, type y to continue with the uninstall. After complete type:

$ pip install dnspython

I then ran my script and the errors were resolved.




回答4:


I installed dnspython 1.11.1 on my Ubuntu box using pip install dnspython. I was able to import the dns module without any problems

I am using Python 2.7.4 on an Ubuntu based server.




回答5:


On Debian 7 Wheezy, I had to do:

pip install --upgrade dnspython

even if python-dns package was installed.




回答6:


Very possible the version of pip you're using isn't installing to the version of python you're using. I have a box where this is the case...

try:

which python

python --version

pip -V

If it looks like pip doesn't match your python, then you probably have something like the multiple versions of python and pip I found on my box...

[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

As long as I use /home/student/class/bin/pip (2.7 that matches my python version on that box), then my imports work fine.

You can also try installing pip from source: http://www.pip-installer.org/en/latest/installing.html

There's probably a better way to do this, I'm still learning my way around too, but that's how I solved it -- hope it helps!




回答7:


This issue can be generated by Symantec End Point Protection (SEP). And I suspect most EPP products could potentially impact your running of scripts.

If SEP is disabled, the script will run instantly.

Therefore you may need to update the SEP policy to not block python scripts accessing stuff.




回答8:


I installed DNSpython 2.0.0 from the github source, but running 'pip list' showed the old version of dnspython 1.2.0

It only worked after I ran 'pip uninstall dnspython' which removed the old version leaving just 2.0.0 and then 'import dns' ran smoothly




回答9:


One possible reason here might be your script have wrong shebang (so it is not using python from your virtualenv). I just did this change and it works:

-#!/bin/python
+#!/usr/bin/env python

Or ignore shebang and just run the script with python in your venv:

$ python your_script.py



回答10:


I was getting an error while using "import dns.resolver". I tried dnspython, py3dns but they failed. dns won't install. after much hit and try I installed pubdns module and it solved my problem.




回答11:


In my case, I hava writen the code in the file named "dns.py", it's conflict for the package, I have to rename the script filename.



来源:https://stackoverflow.com/questions/21641696/python-dns-module-import-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!