3

これが実際に機能するとは思わないことから始めましょう。ただし、このライブラリを取り込もうとする努力を放棄する前に、確認したいと思います。そこで、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
4

2 に答える 2

2

それをしてはいけない。サード パーティのライブラリをアプリケーションのディレクトリに含めて、アプリケーションで使用します。App Engine にデプロイされると、アプリケーションと共にアップロードされます。

于 2013-06-21T04:58:48.820 に答える
2

これは、Google App Engine 用に作成した gaenv ツールの正確な目的です。詳細については、ブログ投稿をご覧ください: http://blog.altlimit.com/2013/06/google-app-engine-virtualenv-tool-that.html

しかし、ここに要約があります:あなたはそれをインストールします:

pip install gaenv
cd /to/your/project
gaenv

サードパーティ パッケージが requirements.txt に含まれていることを確認してインストールすると、シンボリック リンクが作成され、appengine appcfg がシンボリック リンクをたどるので、シンボリック リンクが一緒にアップロードされます。

すべてがどのように機能するかについて、github のコードを読むこともできます: https://github.com/faisalraja/gaenv

于 2013-06-22T06:21:21.887 に答える