Bottle in Verbindung mit Google Appengine

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich habe Startschwierigkeiten mit Googles Appengine, wenn ich ihr Bottle als WSGI-kompatible Klasse übergebe. Ich hab's doch richtig verstanden (bin neu in dem Bereich), dass ich Bottle-Syntax verwenden kann, oder? Demnach müsste doch das gehen:

Code: Alles auswählen

from bottle import default_app, route
from google.appengine.ext.webapp.util import run_wsgi_app

@route('/')
def hello():
    return 'Hello world'

if __name__ == '__main__':
    run_wsgi_app(default_app())
Doch ich erhalte eine Fehlermeldung:

Code: Alles auswählen

ERROR    2009-11-01 11:17:48,897 dev_appserver.py:3009] Exception encountered handling request
Traceback (most recent call last):
  File "/home/seblin/google_appengine/google/appengine/tools/dev_appserver.py", line 2978, in _HandleRequest
    base_env_dict=env_dict)
  File "/home/seblin/google_appengine/google/appengine/tools/dev_appserver.py", line 411, in Dispatch
    base_env_dict=base_env_dict)
  File "/home/seblin/google_appengine/google/appengine/tools/dev_appserver.py", line 2244, in Dispatch
    self._module_dict)
  File "/home/seblin/google_appengine/google/appengine/tools/dev_appserver.py", line 2162, in ExecuteCGI
    reset_modules = exec_script(handler_path, cgi_path, hook)
  File "/home/seblin/google_appengine/google/appengine/tools/dev_appserver.py", line 2058, in ExecuteOrImportScript
    exec module_code in script_module.__dict__
  File "/home/seblin/google_appengine/helloworld/helloworld.py", line 1, in <module>
    from bottle import default_app, route
ImportError: No module named bottle
Bottle selbst ist über `easy_install` installiert und kann demnach eigentlich aus jedem beliebigen Verzeichnis importiert werden. Deshalb verstehe ich die Meldung nicht. Das Ganze läuft natürlich noch nicht über Google, sondern bei mir lokal auf Port 8080.

EDIT: Also doch. Den Grund verstehe ich an sich schon. Es ist offenbar in dem Kontext (Dictionary) von `script_module` kein `bottle` vorhanden. Die Frage ist nur, wie man das behebt, möglichst ohne im Code von Google zu pfuschen.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Pack den Code von bottle mit in dein Projekt, genauso wie du es später fürs hochladen machen müsstest.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Das macht durchaus Sinn... Danke. :)
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Kann es sein, das Google absichtlich verhindert, das man Module einbindet, die weder von Google angeboten noch lokal im selben Verzeichnis liegen, um Ärger nach dem hoch laden zu vermeiden?
Bottle: Micro Web Framework + Development Blog
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

keine Ahnung, allerdings funktioniert bei mir bottle mit der GoogleAppEngine
the more they change the more they stay the same
Antworten