Google App Engine:从六.moves导入http_client没有名为moves的模块



>Okie dokie,

我正在尝试让Google的Dialogflow python API与Google App Engine一起使用,但是当我运行该应用程序时,我似乎遇到了问题。我已经将 pip 安装对话流到一个 lib 文件夹,并通过 app.yaml 文件添加了 lib 文件夹。我一直遇到一个错误,它说找不到"六.moves"。对此非常陌生(一般的应用程序引擎(,所以如果我有设置错误,请告诉我。

我已经阅读了其他一些没有运气的线程。这在本地或部署中不起作用。

以下是我的app.yaml文件:

runtime: python27
api_version: 1
threadsafe: true
service: basic-npl-ui
handlers:
- url: /img
static_dir: img
- url: /javascript
static_dir: javascript
- url: /css
static_dir: css
- url: /.*
script: main.app

env_variables:
GAE_USE_SOCKETS_HTTPLIB: 'anyvalue'
libraries:
- name: jinja2
version: latest
- name: webapp2
version: latest
- name: ssl
version: latest
- name: grpcio
version: latest

这是我的错误日志(本地开发(:

Traceback (most recent call last):
File "/Users/AVD1WIP/Downloads/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/Users/AVD1WIP/Downloads/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/Users/AVD1WIP/Downloads/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
obj = __import__(path[0])
File "/Users/AVD1WIP/Documents/Orca_interns/NLP/basic_ui_app/main.py", line 28, in <module>
from src.dialog_response_util import DialogflowResponseUtil
File "/Users/AVD1WIP/Documents/Orca_interns/NLP/basic_ui_app/src/dialog_response_util.py", line 2, in <module>
import dialogflow
File "/Users/AVD1WIP/Documents/Orca_interns/NLP/basic_ui_app/lib/dialogflow/__init__.py", line 17, in <module>
from dialogflow_v2 import AgentsClient
File "/Users/AVD1WIP/Documents/Orca_interns/NLP/basic_ui_app/lib/dialogflow_v2/__init__.py", line 18, in <module>
from dialogflow_v2.gapic import agents_client
File "/Users/AVD1WIP/Documents/Orca_interns/NLP/basic_ui_app/lib/dialogflow_v2/gapic/agents_client.py", line 19, in <module>
import google.api_core.gapic_v1.client_info
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/google/api_core/gapic_v1/__init__.py", line 16, in <module>
from google.api_core.gapic_v1 import config
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/google/api_core/gapic_v1/config.py", line 26, in <module>
from google.api_core import exceptions
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/google/api_core/exceptions.py", line 26, in <module>
from six.moves import http_client
ImportError: No module named moves
INFO     2018-06-08 20:20:19,020 module.py:846] basic-npl-ui: "GET / HTTP/1.1" 500 -

回溯表明你的应用lib目录中未安装一些依赖项,它们是从本地 python 安装库中获取的。请注意其中的.../python2.7/site-packages/google/api_core/gapic_v1路径。

你需要在应用的lib目录中安装应用的所有依赖项,如此处所述。

我也有这个问题,请确保您"供应商"所有依赖项,例如

pip install -t lib six==1.9.0

要解决此错误,我必须指定与gcloud工具添加的本地python库安装中使用的版本相匹配的版本

这个问题让我发疯了很长一段时间,网上没有任何帮助。我终于从app.yaml库中删除了grpcio,它起作用了:

libraries:
- name: grpcio
version: latest

最新更新