[我目前正在开始为Python 3迁移准备App Engine应用程序的process。在第一步中:
- 将Python 2应用程序中的App Engine捆绑服务迁移到Google Cloud Services ...
在所有instructions之后将数据存储模块从google.appengine.ext.ndb
切换到google.cloud.ndb
,我立即收到以下导入错误:
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 311, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
obj = __import__(path[0])
File "/home/---.py", line 8, in <module>
from google.cloud import ndb
File "/home/test_env/local/lib/python2.7/site-packages/google/cloud/ndb/__init__.py", line 28, in <module>
from google.cloud.ndb.client import Client
File "/home/test_env/local/lib/python2.7/site-packages/google/cloud/ndb/client.py", line 23, in <module>
from google.cloud import _helpers
File "/home/test_env/local/lib/python2.7/site-packages/google/cloud/_helpers.py", line 29, in <module>
from six.moves import http_client
ImportError: No module named moves
无论我是否在虚拟环境中进行测试,都会发生这种情况。导入six.moves
可在python控制台中进行。
终于发现了这个问题,dev_appserver.py
由Andrewsg解决了here
我认为我们已经确定devappserver的一个与六个库有关的问题。您可以尝试解决方法吗?在加载NDB之前,将以下行添加到应用程序顶部:
import six; reload(six)