最近、GAE python に取り組み始めたスズキと申します。
ローカル環境で、以下のエラーが発生しており、
解決への示唆をいただければ幸いです。
Traceback (most recent call last): File "manage.py", line 24, in
<module> script.run() file
"/path_to_dir/myproject/kay/lib/werkzeug/script.py", line 170, in run
return func(**arguments) file
"/path_to_dir/myproject/kay/management/utils.py", line 69, in inner
main_func() file
"/path_to_dir/myproject/afapp/management.py", line 234, in
create_products db.put(entities) file
"/path_to_dir/google_appengine/google/appengine/ext/db/__init__.py",
line 1338, in put keys = datastore.Put(entities, rpc=rpc) file
"/path_to_dir/google_appengine/google/appengine/api/datastore.py",
line 291, in Put 'datastore_v3', 'Put', req,
datastore_pb.PutResponse(), rpc) file
"/path_to_dir/google_appengine/google/appengine/api/datastore.py",
line 195, in _MakeSyncCall rpc.check_success() file
"/path_to_dir/google_appengine/google/appengine/api/apiproxy_stub_map.py",
line 499, in check_success self.__rpc.CheckSuccess() file
"/path_to_dir/google_appengine/google/appengine/api/apiproxy_rpc.py",
line 149, in _WaitImpl self.request, self.response) file
"/path_to_dir/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py",
line 224, in MakeSyncCall handler(request, response) file
"/path_to_dir/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py",
line 350, in _Dynamic_Put 'datastore_v3', 'Put', put_request,
put_response) file
"/path_to_dir/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py",
line 156, in MakeSyncCall self._MakeRealSyncCall(service, call,
request, response) file
"/path_to_dir/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py",
line 176, in _MakeRealSyncCall raise
pickle.loads(response_pb.exception().contents())
IOError: [Errno 24] Too many open files: '/tmp/tmpaEgxLT'
kay-frameworkで作成したアプリケーションの中に、
management.pyを作成し、
その中で処理を書いています。
xmlで情報を取得し、さらにその情報に基づいてxmlを取得するので
urlopenを多用しており、それが関係しているのではないかと思いましたが、
ウェブで同様のエラーを探すことができませんでした。
だいたい、30~40回ぐらいurlopenを実行したあたりで止まります。
止まるところは必ずしも同じではありません。
ちなみに、ほぼ同じスクリプトを、普通のpythonのスクリプトとして実行した場合、
このエラーは起こらず完走します。
また、
OS: Debian(lenny)、Python2.5.2の別環境でも実行してみましたが、
同じエラーでストップします。
urlopenを明示的にcloseするように処理を入れたほうがよいのでしょうか。
--
--------------------------
Yosuke Suzuki
--
Takashi Matsuo
matsuo....@gmail.com
Kay's daddy
2010/10/10 Yosuke Suzuki <yosuke...@gmail.com>:
> --
> このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
> このグループに投稿するには、google-app-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、google-app-engine...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。
>
>
ちなみにOS:Windows XP、python:2.5の環境では、
最後までスクリプトが実行できました。
2010年10月10日20:04 Takashi MATSUO <matsuo....@gmail.com>:
--
--------------------------
Yosuke Suzuki
yosuke...@gmail.com
--
Takashi Matsuo
matsuo....@gmail.com
Kay's daddy
2010/10/11 Yosuke Suzuki <yosuke...@gmail.com>: