GAE python のurllib.uropen()で大層なエラーが出たと思ったら、指定のURLが開けなかっただけだった。
トップページ> "> Webサービス "> GoogleAppEngine

GAE python のurllib.uropen()で大層なエラーが出たと思ったら、指定のURLが開けなかっただけだった。

 Google App Engine(Python)で、urllib.urlopen()で以下のようなエラーが出て、私は大層悩んでいた。

The API package 'remote_socket' or call 'Resolve()' was not found.
Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 703, in __call__
    handler.post(*groups)
  File "/base/data/home/apps/poseritem/25.359525066098703833/main.py", line 779, in post
    freestuff.detail_img = get_sitedata(titleblock.find('img')['src'])
  File "/base/data/home/apps/poseritem/25.359525066098703833/main.py", line 181, in get_sitedata
    f = urllib.urlopen(url)
  File "/base/python_runtime/python_dist/lib/python2.5/urllib.py", line 82, in urlopen
    return opener.open(url)
  File "/base/python_runtime/python_dist/lib/python2.5/urllib.py", line 190, in open
    return getattr(self, name)(url)
  File "/base/python_runtime/python_dist/lib/python2.5/urllib.py", line 457, in open_file
    return self.open_ftp(url)
  File "/base/python_runtime/python_dist/lib/python2.5/urllib.py", line 514, in open_ftp
    host = socket.gethostbyname(host)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/remote_socket/_remote_socket.py", line 299, in gethostbyname
    return _Resolve(host, [AF_INET])[2][0]
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/remote_socket/_remote_socket.py", line 251, in _Resolve
    canon, aliases, addresses = _ResolveName(name, families)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/remote_socket/_remote_socket.py", line 269, in _ResolveName
    apiproxy_stub_map.MakeSyncCall('remote_socket', 'Resolve', request, reply)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 94, in MakeSyncCall
    return stubmap.MakeSyncCall(service, call, request, response)
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 320, in MakeSyncCall
    rpc.CheckSuccess()
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/apiproxy_rpc.py", line 133, in CheckSuccess
    raise self.exception
CallNotFoundError: The API package 'remote_socket' or call 'Resolve()' was not found.

  うーん、remote socketがどうとか言っているぞ、私が知らない間にGoogle App Engineの仕様が変わったんだろうか。うーむ。

 とか悩んでいたのだが、指定した変数が誤っていただけだった。具体的にはこんな感じ。

 urllib.urlopen(url) と書いてて、

 url の中には、URLとしては正しくない文字列が入ってた。

 私が悪いんだけど、色々棚に上げて文句を言っておこう。

 「だったら、URLが開けないとか、間違ってませんかとか、そういう親切なエラーメッセージを出してくれ!」

 少しだけすっきりしたところで、今回の覚書を終わる。

  はてなブックマーク - GAE python のurllib.uropen()で大層なエラーが出たと思ったら、指定のURLが開けなかっただけだった。  この記事にTwitterでつぶやく このページをはてなブックマーク


nenshu.png
予測年収600万円以下なら会社にしがみつけ?だと?


次のGoogleAppEngine/Python の dos攻撃対策設定 dos.yamlへ
トップページ> "> Webサービス "> GoogleAppEngine もくじ