2011-08-16 4 views
2

이상한 문제가 있습니다. 내가 파이썬 명령 행 인터프리터에 같은 일을 수행 할 때getaddrinfo 호스트를 확인할 수 없습니다.

IOError: [Errno socket error] [Errno 8] nodename nor servname provided, or not known 

그러나 잘 작동 : 나는 응용 프로그램에서 URL을 열 때 나는 예를 urllib2.urlopen("http://google.com", None) 위해 나는 다음과 같은 오류가 발생,이 파이썬 응용 프로그램이 있고. 동일한 파이썬 실행 파일이 응용 프로그램과 명령 줄 모두에 사용됩니다.

nslookup google.com 잘 작동하는 것 같습니다. wireshark를 열었을 때 응용 프로그램이 google.com을 열려고 시도 할 때 mDNS 쿼리 만 "My-Name-MacBook-Pro.local"으로 나갑니다. 그러나 명령 줄에서 google.com을 열려고 시도 할 때 일반 DNS 쿼리가 "google.com"으로 나갔습니다. /etc/hosts에 Google의 IP를 하드 코드 한 경우 응용 프로그램의 요청이 마침내 작동하기 시작했습니다.

응용 프로그램이 도메인 이름을 해결하는 방법을 변경해야하는 이상한 것처럼 보입니다. 그러나이 작업을 수행 할 수 있는지 전혀 알 수 없습니다.

저는 Mac OSX 10.6.7 및 Python 2.6을 사용하고 있습니다.

편집 : 나는

+0

처럼, 다시 시도? 당신의 질문의 경우'urllib2가에 태그를 수정하십시오 '가 잘못되었습니다. – agf

+0

인터넷에 액세스하기 위해 프록시를 사용하고 있습니까? – monkut

답변

1

그냥 당신이 이것을 방해하는 환경 변수 설정을 HTTP_PROXY하지 않아도 볼 수있는 인터넷을 액세스하기 위해 프록시를 사용하고 있지 않다. (이 경우, 그 적절한 디렉토리 감안할 때. 잘못된 오류 메시지가 될 것이며, 당신이 실제로`urllib` 또는`urllib2`를 사용하고

import urllib 
r = urlib.urlopen('http://www.google.com') 
print r.read() 
관련 문제