[尝试将使用NDB的Google App Engine Python 2应用程序迁移到Cloud NDB Python 3库时导入错误

问题描述 投票:0回答:1

[我目前正在开始为Python 3迁移准备App Engine应用程序的process。在第一步中:

  1. 将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控制台中进行。

python-2.7 google-app-engine migration app-engine-ndb
1个回答
0
投票

终于发现了这个问题,dev_appserver.py由Andrewsg解决了here

我认为我们已经确定devappserver的一个与六个库有关的问题。您可以尝试解决方法吗?在加载NDB之前,将以下行添加到应用程序顶部:import six; reload(six)

© www.soinside.com 2019 - 2024. All rights reserved.