Amazon.co.jp ウィジェット
スポンサードリンク

2008年09月25日

GAE 1.1.3 の zipimport は py_zipimport

GAE 1.1.3 + zipimport + setuptools

appengine-monkey + zipimport の合わせ技で Pylons 0.9.7 を動かそうとしたのだが、うまくいかない。

setuptools が entry points を探しに行く段階で、以下のように怒られてしまいます。

Error loading application:
Traceback (most recent call last):
  File "/base/data/home/apps/bia-hanoi/2.23/paste-deploy.py", line 51, in 
    app = loadapp(CONF_FILE)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 210, in loadapp
    return loadobj(APP, uri, name=name, **kw)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 230, in loadobj
    global_conf=global_conf)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 254, in loadcontext
    global_conf=global_conf)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 284, in _loadconfig
    return loader.get_context(object_type, name, global_conf)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 411, in get_context
    global_additions=global_additions)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 506, in _pipeline_app_context
    APP, pipeline[-1], global_conf)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 415, in get_context
    section)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 437, in _context_from_use
    object_type, name=use, global_conf=global_conf)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 367, in get_context
    global_conf=global_conf)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 254, in loadcontext
    global_conf=global_conf)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 284, in _loadconfig
    return loader.get_context(object_type, name, global_conf)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 415, in get_context
    section)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 437, in _context_from_use
    object_type, name=use, global_conf=global_conf)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 367, in get_context
    global_conf=global_conf)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 254, in loadcontext
    global_conf=global_conf)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 291, in _loadegg
    return loader.get_context(object_type, name, global_conf)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 567, in get_context
    object_type, name=name)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/PasteDeploy-1.3.2-py2.5.egg/paste/deploy/loadwsgi.py", line 587, in find_egg_entry_point
    pkg_resources.require(self.spec)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg/pkg_resources.py", line 627, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg/pkg_resources.py", line 522, in resolve
    env = Environment(self.entries)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg/pkg_resources.py", line 682, in __init__
    self.scan(search_path)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg/pkg_resources.py", line 711, in scan
    for dist in find_distributions(item):
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg/pkg_resources.py", line 1673, in find_on_path
    for dist in find_distributions(os.path.join(path_item, entry)):
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg/pkg_resources.py", line 1620, in find_in_zip
    metadata = EggMetadata(importer)
  File "/base/data/home/apps/bia-hanoi/2.23/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg/pkg_resources.py", line 1509, in __init__
    self.zipinfo = zipimport._zip_directory_cache[importer.archive]
AttributeError: 'module' object has no attribute '_zip_directory_cache'

App Engine Console

App Engine Console を借りて zipimport の中身を見てみる。


>>> import zipimport
>>> help(zipimport)

Help on module py_zipimport:

py_zipimport = <module 'py_zipimport' from '/base/python_dist/lib/python2.5/py_zipimport.py'>

GAE 1.1.3 の zipimport は py_zipimport で、py_zipimport は_zip_directory_cache をサポートしていないということでしょうか。あるいは、 GAE の仕組み上、 _zip_directory_cache を提供できない理由がある?

いずれにせよ、zipimport と entry points を併用できないのは痛い。

Tips

以下、調査の過程で見つけたTipsです。
  • GAE でも以下のように出力先を明示的に与えると、開発環境で pdb が利用できます。
    
    def set_trace():
        import pdb, sys
        debugger = pdb.Pdb(stdin=sys.__stdin__,
                           stdout=sys.__stdout__)
        debugger.set_trace(sys._getframe().f_back)
    
    (参考: Python: Debugging Google App Engine Apps Locally)
  • appengine-monkey r35 を GAE 1.1.3 で利用しようとすると、"import site" でエラーが発生しますが、 paste-deploy.py の い "import site; site = reload(site)" を sys.path 設定の後に持ってくると動作します。
タグ:Python appengine
posted by junya at 02:47 | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年09月19日

Vietnam Festival 2008

明日・明後日、代々木公園で「Vietnam Festival 2008」が開催されます。



明日は App Engine Hackathon があるので、日曜日に見に行ってみようかな。
タグ:ベトナム
posted by junya at 21:24 | Comment(1) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

円高、あと1ヵ月もって!

欧州旅行者には嬉しい円高が続いています。1ユーロ150円。あと1ヵ月もってくれるだろうか・・・

今回の旅で4泊するミュンヘンの宿を予約しました。「Ambiance Rivoli」です。1泊108ユーロ(早期10%割引)でやや予算オーバーなのですが、4泊連泊するので失敗のないところを選びました。街の中心部からは3kmほど離れていますが、逆にうるさくなくて良さそうです。ホテル情報・レビューが充実していて検索もしやすかったので、Booking.comから予約しました。

なお、当初購入を予定していた German Rail Pass ですが、移動がほとんど Bayern 州なので買うのをやめて、 Bayern Ticket を駆使することにしました。2〜5人がBayern 州内の電車1日乗り放題で27ユーロなのでとってもお得。Bayern 州ってとっても広いんです。

だんだん楽しみになってきました。
posted by junya at 01:33 | Comment(2) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年09月16日

元値 < 7%割引

Benefit Station」(会社で契約している福利厚生サービス)を利用すると、「Gullivers Travel Associates」からの予約が7%引きになります ・・・ ですが、、、、

Before (Benefit Station 経由前) DreiLowen01.png

After (Benefit Station 経由後) DreiLowen02.png

料金をよく見てください。Benefit を経由すると、4泊68,800円が82,000円に値上がりしています。(ここから7%割引されます)

Benefit Station の説明( "Attention" から引用)

■ ガリバーズトラベルでは領収書の発行はしておりません。その為、キャッシュバックでのカフェポイントはご利用いただけませんのでご注意ください。 ■ 画面、予約確認書ともに表示は7%Offの価格表示ではございません。利用金額についてはご自身にて計算をお願いします。 ■ 割引後の価格は一切表示されませんが、カードで決済する際に7%offにて自動的に決済されます。正確な料金の確認はクレジット会社の請求書のみとなりますので、予めご了承ください。 ■ 7%割引はベネフィットステーションHPを経由した料金への適用となります。他旅行会社等のHP経由の料金とは異なりますので予めご了承ください。料金設定はご自身で比較・検討の上でのお申込をお願いいたします。

勉強させてもらいました。m(_ _)m 申込前に気づいてよかった。

# H.I.S. でホテルを依頼したら、 Gullivers を使って検索していました。料金はH.I.S.仕様です。

タグ:ドイツ旅行
posted by junya at 22:09 | Comment(2) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。