Socket error AttributeError: 'module' object has no attribute 'error'

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
nieselfriem
User
Beiträge: 135
Registriert: Sonntag 13. Januar 2013, 16:00

Hallo zusammen,

ich möchte mit IP-Adressen die Namensauflösung durchführen dazu habe ich folgendes Tetsscript für Python 2.7 gebastelt:

Code: Alles auswählen

import socket
import sys
ip='1.20.76.213'
try:
    a=socket.gethostbyaddr(ip)
except socket.error as e:
    a=ip
Leider bekomme ich die Meldung:

[codebox=text file=Unbenannt.txt] File "socket.py", line 1, in <module>
import socket
File "/tmp/socket.py", line 6, in <module>
except socket.error as e:
AttributeError: 'module' object has no attribute 'error'[/code]

Aber laut Referenz https://docs.python.org/2/library/socke ... hostbyaddr würde das so funktionieren. Wieso gibt es hier nicht diese Option nicht?

VG niesel
BlackJack

@nieselfriem: Du hast *Dein* Modul `socket` genannt, und das importiert sich selbst und hat kein `error`-Attribut. Benenn es um und lösche eine eventuell vorhandene Bytecodedatei (`socket.pyc`) im gleichen Verzeichnis, dann sollte es funktionieren. :-)

Edit: Wenn man das Ausnahmeobjekt nicht benötigt, muss man es auch nicht an einen Namen binden. Das ``as e`` könnte man also hier weglassen.
Benutzeravatar
nieselfriem
User
Beiträge: 135
Registriert: Sonntag 13. Januar 2013, 16:00

:lol: Alles klar :d Danke für den Hinweis. Nun funzt es wie es soll

VG niesel
Antworten