これが実際に機能するとは思わないことから始めましょう。ただし、このライブラリを取り込もうとする努力を放棄する前に、確認したいと思います。そこで、Github で見つけた API ライブラリを easy_install を使用して追加しました。これを私のappengineアプリで使用したいと思っていました。モジュールのメイン クラスのインスタンスを作成し、要求を出力する簡単なテスト ハンドラーを作成しました。dev_appserver は起動しますが、MainPage をロードしません。 どんなアドバイスでも大歓迎です!
エラーは次のとおりです。
ERROR 2013-06-21 04:24:00,450 wsgi.py:219]
Traceback (most recent call last):
File "/home/devin/google_appengine/google/appengine/runtime/wsgi.py", line 196, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/home/devin/google_appengine/google/appengine/runtime/wsgi.py", line 255, in _LoadHandler
handler = __import__(path[0])
File "/home/devin/Projects/appengine/hackTheMidwest/perfectpet4me.py", line 4, in <module>
import petfinder
ImportError: No module named petfinder
INFO 2013-06-21 04:24:00,455 server.py:593] default: "GET / HTTP/1.1" 500 -
そして、これが私のメインファイルのコードです:
import os
import urllib
import petfinder # THE INSTALLED LIBRARY
from google.appengine.api import users
import jinja2
import webapp2
JINJA_ENVIRONMENT = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
extensions=['jinja2.ext.autoescape'])
class MainPage(webapp2.RequestHandler):
def get(self):
template = JINJA_ENVIRONMENT.get_template('templates/index.html')
self.response.write(template.render())
class TestPage(webapp2.RequestHandler):
def get(self):
# Instantiate the client with your credentials.
api = petfinder.PetFinderClient(api_key='#####', api_secret='#####')
pet = api.pet_getrandom()
self.response.write(pet['name'])
application = webapp2.WSGIApplication([
('/', MainPage),
('/test', TestPage),
], debug=True)
そして私の app.yaml:
application: ASDFASDFASDF
version: 1
runtime: python27
api_version: 1
threadsafe: true
- url: /.*
script: perfectpet4me.application
libraries:
- name: webapp2
version: latest
- name: jinja2
version: latest