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