python与app引擎错误导入ndb

时间:2015-03-10 15:10:44

标签: python google-app-engine

我的app引擎有问题,我用django。 我读了很多关于这个问题的想法,但我从来没有找到解决方案。 我使用Pycharm进行开发,我只是在models.py中使用app引擎

对于import ndb,我这样做:

from google.appengine.ext import ndb

有我的问题:      如果我使用" dev_appserver.py。"我没有任何问题,申请工作正常。

但是当我使用" python manage.py test mobile_backend /"我有一个错误。

  

来自google.appengine.ext import ndb
  ImportError:没有名为的模块   appengine.ext

经过几个小时的搜索,解决方案我已经验证了一些事情:

  -I put "'google.appengine.ext.ndb.django_middleware.NdbDjangoMiddleware',
  " in the top of my MIDDLEWARE_CLASSES settings

  -I have the google-cloud-sdk.

  -I have in my .profile "export PATH=$PATH:/home/david/google-cloud-sdk/platform"

  -I attempt to change the PYTHONPATH to integrated the PATH of google-cloud-sdk, but without success.

Pycharm向我显示导入的问题,他知道谷歌,但不知道导入的结束。(appengine.ext)

我有搜索,我有这个路径的ndb模块:

 /home/david/google-cloud-sdk/platform/google_appengine/google/appengine/ext/ndb

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:6)

问题是您正在尝试使用App Engine基础架构但尚未正确设置App Engine环境。这在Setting up a testing framework部分的App Engine本地单元测试页面中有记录:

sdk_path = '/home/david/google-cloud-sdk/platform/google_appengine'
sys.path.insert(0, sdk_path)
import dev_appserver
dev_appserver.fix_sys_path()

答案 1 :(得分:0)

经过一番研究,我终于找到了解决方案。

当我使用

from google.appengine.ext import ndb

我成功导入谷歌,但不是其他人。

我找到了导入文件,只看到了google.py。

我在google_appengine中与谷歌创建了一个符号链接。

之后,我可以导入google.appengine.ext,但我无法导入ndb。

错误是

  

ImportError:没有名为yaml的模块

为了解决这个问题,我只想:

pip install pyyaml

感谢您的帮助。