2011-11-10 8 views
1

私のアプリエンジンアプリをPython 2.5から2.7に切り替えようとしましたが、urlfetch.fetch()はうまく動作しません(devサーバ少なくとも私はそれをまだ展開していない)。App Engine python27 urlfetchエラー:「[Errno 11003] getaddrinfo failed」

file = urlfetch.fetch(url="http://www.google.com") 

私は次のエラーを取得する:私はのような単純なものを行う場合は、インターネットの検索

File "C:\workspace\DjangoServer\src\mycode.py", line 167, in request 
    file = urlfetch.fetch(url="http://www.google.com") 
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\urlfetch.py", line 264, in fetch 
    return rpc.get_result() 
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py", line 592, in get_result 
    return self.__get_result_hook(self) 
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\urlfetch.py", line 366, in _get_fetch_result 
    raise DownloadError(str(err)) 
DownloadError: ApplicationError: 2 [Errno 11003] getaddrinfo failed 

を、それがファイアウォールまたはプロキシ問題になる可能性があります示唆したが、私は、ファイアウォールをオフにし、Iましたプロキシの背後にない。

これはpython 2.5 devサーバーでは正常に動作しますが、python 2.7 devサーバーでは正常に動作しません。私がPython 2.7コンソールを開き、手動でsocket.getaddrinfo("www.google.com", 80)を実行すると、それもそこで動作します。

アイデア?他に誰かがこれに遭遇しましたか?

+0

SDKの最新バージョンは1.6.0ですか? –

+0

また、localhostをpingして127.0.0.1に解決することを確認しますか? –

+0

はい、私は1.6 SDKを使用しており、ローカルホストに対してpingを実行すると127.0.0.1に解決されます。私のホストファイルも空です。私はWindows 7を使用しています。 – DurhamG

答えて

1

私はこの問題を再現することができましたし、働いていなかったバージョンのgitで多くのやりとりを行った後、私は問題が(少なくとも私の場合は)問題を発見しましたdjango-nonrelにあった(私は一気に更新したので、django-nonrelとappengine)。編集djangoappengine/settings_base.pyとに

try: 
    from google.appengine.api import apiproxy_stub_map 
except ImportError: 
    from .boot import setup_env 
    setup_env() 

from djangoappengine.utils import on_production_server, have_appserver 

を変更:

ので、次の手順に従ってください

from djangoappengine.utils import on_production_server, have_appserver 
if not on_production_server: 
    from .boot import setup_env 
    setup_env() 

本当の問題は、ジャンゴ・nonrelの以前のバージョンであると思われますインポートは実際にはからgoogle.appengine.api import api_proxy_stub_map(これは決して見つかりませんでしたが、setup_env()は常に呼び出されました)のように書かれています。したがって、インポートが修正されたとき、setup_env()それは私のカスeにエラーが表示されました)。

2番目の注記は、何らかの理由でこれがEclipse/PyDevの内部で実行されていて、コマンドラインで動作したということです(ただし、環境変数は同じですが、内部のJavaから実際に差をつけた)。

+0

残念ながら、これは私のためのエラーを修正していませんでした:(私はPyCharmを使用しています。ありがとうとにかく – DurhamG

+0

私はdjango-nonrelを使用し、うまくいきませんでした。 – Tzach

関連する問題