2009-08-22 6 views
0

Ich versuche app-engine-patch mit pyamf zu verwenden, indem ich folge: http://pyamf.org/wiki/GoogleAppEngine, weil ich meine Django < -> pyamf-Anwendung zu app-engine- Patch < -> pyamf.app-engine-patch mit pyamf = Kein Modul namens encoding

Was ich jetzt habe, ist, dass ich meine gateway.py mit nur einer Zeile Code erstellt:

import pyamf 

nur zu testen, kann ich pyamf verwenden und ich leere Seite, wenn ich auf diese URL meinen Browser zeigen/file so aussieht, dass gut (keine Importprobleme und pyamf gefunden wird), aber in der Eingabeaufforderung, wo ich Server mit „manage.py runserver“ ich sehe Bündel von Fehlern wie der Autor:

... 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2238, in Dispatch 
    self._module_dict) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2156, in ExecuteCGI 
    reset_modules = exec_script(handler_path, cgi_path, hook) 
    File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2052, in ExecuteOrImportScript 
    exec module_code in script_module.__dict__ 
    File "C:\Users\[my app-engine-patch application path]\common\appenginepatch\main.py", line 16, in <module> 
    patch_all() 
    File "C:\Users\[my app-engine-patch application path]\common\appenginepatch\appenginepatcher\patch.py", line 29, in patch_all 
    patch_app_engine() 
    File "C:\Users\[my app-engine-patch application path]\common\appenginepatch\appenginepatcher\patch.py", line 193, in patch_app_engine 
    from django.utils.encoding import force_unicode, smart_str 
ImportError: No module named encoding 

gibt es pyamf < -> App-Engine-Patch-Gurus da draußen, die mir einen Hinweis geben können, was mache ich wr ong und wie kann ich pyamf einrichten, um mit app-engine-patch zu arbeiten?

Antwort

1

Aktivieren Sie Django 1.0.2 im Startcode Ihrer App Engine? App Engine kommt jetzt mit, aber auch (aus Gründen der Abwärtskompatibilität) mit 0.9.6, und (aus Gründen der Abwärtskompatibilität) 0.9.6 ist das, was es standardmäßig ist - alles was man braucht, um dies zu beheben, ist beim Start:

und dann "Nachfolgende Versuche, das Django-Paket zu importieren, wird Django 1.0.2 verwenden.". Sie müssen 1.0.2 mit dem SDK separat installieren. Siehe alle Anweisungen here.

+0

Ich benutze App Engine Django nicht, ich benutze app-engine-patch, das mit gepackten Django im gleichen Paket kommt. Standard-App und meine Modelle funktionieren * bis * ich pyamf aktivieren. Sobald ich Pyamf importiere, erhalte ich Fehler "Kein Modul namens encoding" –

+0

Es sieht also so aus, als ob pyamf einige Tricks mit sys.path oder anderen Aspekten des Imports machen muss, die die eigenen Tricks von app-engine-patch austricksen. Was passiert, wenn Sie sicherstellen, dass 'sys.modules ['django.utils.encoding']' richtig definiert ist, bevor Sie pyamf starten (zB nur 'from django.utils encoding importieren 'in Ihrem Code, wo es noch funktioniert, bevor Sie pyamf starten) ? Es ist zwar unwahrscheinlich, aber nicht unmöglich, dass pyamf Einträge von sys.modules löscht, also könnte dies eine provisorische Lösung sein! –

+0

Sie sind ein weiser Mann Alex :-) von django.utils Import-Codierung vor pyamf Anrufe funktioniert wie ein Charme. Danke für die Hilfe !! –