Um in Python eine DNS Abfrage zu stellen, gibt es das Modul dnspython https://www.dnspython.org/

Nun bin ich über ein kleines Problem gestolpert – Fehlermeldung: no module named dns

Es gibt eine Reihen von Problemlösungen im Netz, aber keine funktionierte bei mir. Bis ich auf den Umstand gestoßen bin, dass Linux Case-Sensitiv ist und Windows nicht. Und da ich die Meldung unter besagten Windows System bekommen habe, wurde ich fündig.

Mit pip show dnspython kann man sich die Infos zum Paket ansehen. Mit pip list eine Liste aller installierten Pakete.

Name: dnspython
Version: 2.7.0
Summary: DNS toolkit
Home-page: https://www.dnspython.org
Author:
Author-email: Bob Halley <halley@dnspython.org>
License: ISC
Location: C:\Users\FranzStaffel\AppData\Local\Programs\Python\Python312\Lib\site-packages
Requires:
Required-by:

Nun geschwind in den Ordner der Pakete gewechselt und was findet man da (dir):

11.12.2024  13:05    <DIR>          DNS
11.12.2024  13:05    <DIR>          dnspython-2.7.0.dist-info

Siehe da, durch die Installation des Modules DNS gibt es einen Ordner mit Großbuchstaben. Und da Windows nicht Case-Sensitiv ist, kopiert er bei der Installation von dnspython alles in den DNS Ordner.

Kurzerhand dnspython wieder deinstalliert mit pip deinstall dnspython

Den Ordner DNS manuell gelöscht (da ich das Modul DNS ohnehin nicht mehr benötige) und dnspython wieder installiert

11.12.2024  13:05    <DIR>          dns
11.12.2024  13:05    <DIR>          dnspython-2.7.0.dist-info

Jetzt funktionieren auch die Programme mit dem import dns. Alles eine Frage der Groß- und Kleinschreibung.

Das war die Ursache bei mir, vielleicht hilft es bei dem einen oder anderen, seinen Fehler zu lokalisieren.

Python DNS

You May Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *