2009-12-07 7 views
10

я пытаюсь сделать это в моей программе:Python ошибки атрибут: тип объекта «_socketobject» не имеет атрибута «gethostbyname»

dest = socket.gethostbyname(host) 

я включил линию:

from socket import * 

в начало файла.

Я получаю эту ошибку:

AttributeError: type object '_socketobject' has no attribute 'gethostbyname'

Я бегу Vista 64bit. Может ли быть проблема с моей ОС? Я отключил свой брандмауэр и все такое.

ответ

2

После from socket import * вам нужно позвонить только с именем barename gethostbyname. Теперь имя barename socket относится к типу, а не к модулю. То, что import * - ужасная практика, кстати: do, вместо этого, import socket и , тогдаsocket.gethostbyname будет работать просто отлично!

13

Вы shoulod либо использовать

import socket 
dest = socket.gethostbyname(host) 

или использовать

from socket import * 
dest = gethostbyname(host) 

Примечание: первый вариант, безусловно, рекомендуемого.

+1

Yayyyy !!!! Это сработало!! Большое спасибо, у меня есть задание завтра, и ваш ответ был очень полезен. Я не знал, такая небольшая ошибка может вызвать такую ​​серьезную проблему. Еще раз спасибо, я очень благодарен за быстрый ответ. Спасибо. – Sheela

+1

@Sheela вы можете оценить еще больше, принимая это как ответ :) – holgac