36

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.

asked Feb 8, 2014 at 3:57
3
  • 1
    Most likely dnspython was installed for another version of Python on your system. For example, some systems have Python 2.4 installed by default. Commented Feb 8, 2014 at 4:00
  • You might try one of the two top answers to this other SO question: stackoverflow.com/q/2812520/42346 Commented Feb 8, 2014 at 4:02
  • Thanks @bernie. I tried the answers for the other stack-overflow but i think I don't have multiple version of python installed. Also the pip installed to be matching the version of python. I have edited the answer above to show the pip version and python version. Commented Feb 8, 2014 at 20:28

16 Answers 16

53

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.

marbel
7,7656 gold badges52 silver badges69 bronze badges
answered Feb 8, 2014 at 5:21
Sign up to request clarification or add additional context in comments.

3 Comments

Thanks @DanGar I was able to build the package and install it now its working. However do you know if this is happening because of the module or some trouble in the installation in my setup.
Glad it worked :) It is most likely an issue with the installation of our setup as I have had your approach work on other dev machines.
For python3 in Debian sudo apt-get install python3-dnspython
21

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.

answered Jul 11, 2017 at 18:27

Comments

8

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

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

answered Mar 29, 2016 at 14:31

1 Comment

This also works for the zip files, etc. example: pip install https://github.com/rthalley/dnspython/archive/v1.15.0.zip
6

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.

answered Aug 27, 2019 at 5:55

Comments

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.

answered Feb 8, 2014 at 8:37

Comments

3

On Debian 7 Wheezy, I had to do:

pip install --upgrade dnspython

even if python-dns package was installed.

Pang
10.2k146 gold badges87 silver badges126 bronze badges
answered Oct 1, 2016 at 7:34

Comments

3

The same thing has happened to me and it turns out that the .py file had the name dns (dns.py) and apparently it cannot have that name since it is the name of the package and it is a problem, so I recommend trying to change the name for example (dns_1.py) in case dns is named

answered Jul 10, 2022 at 14:07

Comments

2

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!

Welz
2452 gold badges11 silver badges23 bronze badges
answered Feb 8, 2014 at 7:54

1 Comment

Thanks @scottsanchez I have updated the post above to show the output of pip version and python version. But it seems I only have one installation of python. I will try installing pip from source and see how it works.
1

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
answered May 17, 2019 at 9:35

1 Comment

this was the case for me where where cli python was /usr/local/bin/python but shebang was #!/usr/bin/python3
1

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.

answered Jul 25, 2019 at 17:26

Comments

1

I faced the same problem and solved this like i described below: As You have downloaded and installed dnspython successfully so

  1. Enter into folder dnspython
  2. You will find dns directory, now copy it
  3. Then paste it to inside site-packages directory

That's all. Now your problem will go

If dnspython isn't installed you can install it this way :

  1. go to your python installation folder site-packages directory
  2. open cmd here and enter the command : pip install dnspython

Now, dnspython will be installed successfully.

baitmbarek
2,5264 gold badges20 silver badges27 bronze badges
answered Jan 15, 2020 at 13:00

Comments

0

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.

answered Oct 21, 2016 at 2:18

Comments

0

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

Abdul Rauf
6,2806 gold badges56 silver badges76 bronze badges
answered Dec 10, 2018 at 10:01

Comments

0

ok to resolve this First install dns for python by cmd using pip install dnspython
(if you use conda first type activate and then you will go in base (in cmd) and then type above code) it will install it in anaconda site package ,copy the location of that site package folder from cmd, and open it . Now copy all dns folders and paste them in python site package folder. it will resolve it .

actually the thing is our code is not able to find the specified package in python\site package bcz it is in anaconda\site package. so you have to COPY IT (not cut).

answered Apr 14, 2020 at 17:30

Comments

0

I have faced similar issue when importing on mac.i have python 3.7.3 installed Following steps helped me resolve it:

  1. pip3 uninstall dnspython
  2. sudo -H pip3 install dnspython

Import dns

Import dns.resolver

answered Feb 2, 2021 at 10:23

Comments

0

If you don't have (or don't want) pip installed there is another way. You can to solve this is to install package with native OS package manager.

For example for Debian-based systems this would be command:

apt install python3-dnspython

answered Jun 11, 2021 at 5:20

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.