app-engine-patch与pyamf = 没有名为encoding的模块
我正在尝试使用 app-engine-patch 和 pyamf,参考这个链接:http://pyamf.org/wiki/GoogleAppEngine,因为我想把我的 Django 和 pyamf 应用迁移到 app-engine-patch 和 pyamf。
现在我做的是创建了一个 gateway.py 文件,里面只有一行代码:
import pyamf
我只是想测试一下能否使用 pyamf,当我在浏览器中打开那个网址/文件时,看到的是空白页面,这看起来没问题(没有导入错误,pyamf 也能找到),但是在我用 "manage.py runserver" 启动服务器的命令提示符中,我看到了一堆错误:
...
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
有没有 pyamf 和 app-engine-patch 的高手能给我点提示,看看我哪里做错了,怎么才能让 pyamf 和 app-engine-patch 一起工作呢?
1 个回答
1
你在应用引擎的启动代码中激活Django 1.0.2了吗?现在应用引擎自带这个版本,但为了兼容旧版,它也带了0.9.6,而默认使用的还是0.9.6。要解决这个问题,你只需要在启动时使用:
from google.appengine.dist import use_library
use_library('django', '1.0')
这样之后,“后续尝试导入django包时将会使用Django 1.0.2。”不过,你需要单独用SDK安装1.0.2。具体的安装说明可以在这里找到。