The Red Pea The Red Pea - 1 year ago 266
Python Question

IOError: [Errno socket error] [Errno 11004] getaddrinfo failed

I am beginner python prorammer. With 2.7.2, Windows 7, built-in interpreter, and three libraries. I am trying to do this, with error. I appreciate any help?

import os
import urllib
import socket

#Neither of these seem to work when opening with urllib.urlopen becaue of the error:
#I/O error(socket error): [Errno 11004] getaddrinfo failed

DISNEY_LOCAL = 'file://C:/Users/Nate/Desktop/Education/python_education/xbrlnexusfiles/xbrlfiles/dis-20111001.xml'
DISNEY_LOCAL_NONE = 'file://C:/Users/Nate/Desktop/Education/python_education/xbrlnexusfiles/xbrlfiles/dis.txt'

class SECFilingPackage(object):

def __init__ (self, SEC_URL):
URLFilePath, URLFileExt = os.path.splitext(SEC_URL)
except IOError as (errno, strerror):
print "I/O error({0}): {1}".format(errno, strerror)
#This error throws, see it copied above;

DisneyPackage = SECFilingPackage(DISNEY_LOCAL_NONE)

I get this error:
I/O error(socket error):

[Errno 11004] getaddrinfo failed

Yes the text file exists at that location. The contents of the text file is "Nothing"

The stack trace says the last call was line 516 in

host = socket.gethostbyname(host)
IOError: [Errno socket error] [Errno 11004] getaddrinfo failed

I could open URLs fine, so I don't think it's a proxy/firewall issue (nor do I understand that really)

And I don't understand what newlines or ENDs might have to do with it.

I believe it should work because of the urllib reference:

If the URL does not have a scheme identifier, or if it has file: as
its scheme identifier, this opens a local file (without universal
newlines); otherwise it opens a socket to a server somewhere on the

(I think this just means someone who expects universal newlines already converted there, would be disappointed.

Note I also dispute the part about "if it does not have a scheme identifier", because if I don't precede the strings with
I get

IOError: [Errno url error] unknown url type: 'c')

I want to "learn to fish" so to speak, can anyone tell me is there a way I could debug into the
to at least understand these values? Can I do it with eclipse? It always seems to force me into a project.

Answer Source

Instead of file://<filename>, use file:///<filename (note the extra slash).

Also, please note that urllib.urlopen has been deprecated, you should use urllib2.urlopen instead.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download