0

Google App Engine で Django アプリをホストしようとしているので、Django nonrelを使用し、次の手順に従っています。現在、 Python ソーシャル認証を機能させようとしていますが、2 つの問題に直面しています。

まず、Python social のサンプル Django構成に非常によく似たコードを使用して、実行中のサーバーから URL をロードしようとすると、次のようになります。

Traceback (most recent call last):
  File "/home/pablo/scripts/google_appengine/google/appengine/tools/dev_appserver.py", line 2989, in _HandleRequest
    self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
  File "/home/pablo/scripts/google_appengine/google/appengine/tools/dev_appserver.py", line 2832, in _Dispatch
    request_file = open(request_file_name, 'wb')
  File "/home/pablo/scripts/google_appengine/google/appengine/dev_appserver_import_hook.py", line 605, in __init__
    raise IOError('invalid mode: %s' % mode)
IOError: invalid mode: wb

どこかで、アプリはローカル ファイルを作成しようとしていますが、これは App Engine では許可されていませんが、これはApp Engine のコードから来ているため、混乱しています。これがどこから来ているのか誰か知っていますか?

次に、サーバーのルートにアクセスしようとすると、次のエラーが発生します。

... [many lines elided]
  File "/home/pablo/scripts/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 692, in Decorate
    return func(self, *args, **kwargs)
  File "/home/pablo/scripts/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1642, in FindAndLoadModule
    description)
  File "/home/pablo/scripts/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 692, in Decorate
    return func(self, *args, **kwargs)
  File "/home/pablo/scripts/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1589, in LoadModuleRestricted
    description)
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 42, in <module>
    raise ImportError, str(msg) + ', please install the python-tk package'
ImportError: No module named _tkinter, please install the python-tk package

python-tkどこかで Django がforを使おうとしているのですTkinterが、私が理解しているように python-tk は GUI ライブラリです。どのようにしてここにたどり着き、それを必要とするコードをどのように取り除くことができますか?

参考までにurls.py、実行中のサーバーにアクセスするときに(そしてこれらのエラーが発生するときに)試しているドメインに対して呼び出される関数を次に示します。

def home(request):
    """Home view, displays login mechanism"""
    if request.user.is_authenticated():
        return redirect('done')
    return render_to_response('home.html', {
        'plus_id': getattr(settings, 'SOCIAL_AUTH_GOOGLE_PLUS_KEY', None)
    }, RequestContext(request))

何か助けていただければ幸いです - 私は Django と Python にかなり慣れていないので、これから先に進みたいと思っています :D

4

1 に答える 1