有一個在我的網站後臺功能,將來電urllib.urlopen(url))
從URL檢索數據。部署完成後,除此之外,其他所有功能都運行良好。調用此函數的結果爲[Errno socket error] [Errno -2] Name or service not known
。它似乎無法找到主機。使用Apache和mod_wsgi部署Django站點後發生套接字錯誤?
但是,如果使用python manage.py runserver
運行的網站,這個功能效果很好。
我想知道是否也許有一些問題與Apache,但如果我不能找到它。謝謝你的幫助。
這是函數:
WORD_URL = 'http://dict.cn/ws.php?utf8=true&q=%s'
def get_word(word):
url = WORD_URL % word
dom = minidom.parse(urllib.urlopen(url))
try:
pron = dom.getElementsByTagName('pron')[0].firstChild.data
definition = dom.getElementsByTagName('def')[0].firstChild.data
except IndexError:
pron = ''
definition = ''
return {
'word':word,
'pron':pron,
'definition':definition
}
這是回溯:
Traceback:
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/home/jxq/djcode/wormo/core/views.py" in added
31. xml_word = get_word(new_word)
File "/home/jxq/djcode/wormo/core/get_word.py" in get_word
8. dom = minidom.parse(urllib.urlopen(url))
File "/usr/lib/python2.7/urllib.py" in urlopen
84. return opener.open(url)
File "/usr/lib/python2.7/urllib.py" in open
205. return getattr(self, name)(url)
File "/usr/lib/python2.7/urllib.py" in open_http
342. h.endheaders(data)
File "/usr/lib/python2.7/httplib.py" in endheaders
937. self._send_output(message_body)
File "/usr/lib/python2.7/httplib.py" in _send_output
797. self.send(msg)
File "/usr/lib/python2.7/httplib.py" in send
759. self.connect()
File "/usr/lib/python2.7/httplib.py" in connect
740. self.timeout, self.source_address)
File "/usr/lib/python2.7/socket.py" in create_connection
553. for res in getaddrinfo(host, port, 0, SOCK_STREAM):
Exception Type: IOError at /wormo/added/
Exception Value: [Errno socket error] [Errno -2] Name or service not known
的httpd.conf:
WSGIScriptAlias//home/jxq/djcode/wormo/apache/django.wsgi
<Directory /home/jxq/djcode/wormo/apache>
Order allow,deny
Allow from all
</Directory>
Alias /media/ /home/jxq/djcode/wormo/media/
<Directory /home/jxq/djcode/wormo>
Order deny,allow
Allow from all
</Directory>
的Python 3和Python 2.7都是我的機器上。這是一個問題嗎?
可能想提供您的設置和引發異常的函數的詳細信息。 – zeekay 2011-05-30 23:28:19
你的代碼訪問什麼網址? – 2011-05-30 23:30:32
@蒂姆 - 耶茨這是通過'http://dict.cn/ws.php UTF8 =真&Q =%s'?我可以在python shell中沒有錯誤地調用這個函數。 – amazingjxq 2011-05-30 23:36:02