关于python:Google App Engine:从six.moves导入http_client没有名为moves的模块

Google App Engine: from six.moves import http_client no module named moves

好的,

我正在尝试使Google的Dialogflow python API与Google App Engine一起使用,并且在运行该应用程序时似乎遇到了问题。 我已经将pipflow安装到一个lib文件夹中,并通过app.yaml文件添加了lib文件夹。 我不断遇到错误,提示它找不到" six.moves"。 对此非常陌生(通常是App引擎),所以请告诉我是否设置错误。

我读过其他一些运气不好的话题。 这不适用于本地或部署。

以下是我的app.yaml文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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 -


这个问题使我疯狂了一段时间,网上没有任何帮助。 我终于从app.yaml库中删除了grpcio,它可以正常工作:

1
2
3
libraries:
 - name: grpcio
   version: latest


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

1
pip install -t lib six==1.9.0

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


追溯表明您的应用程序的lib目录中未安装某些依赖项,这些依赖项是从本地python安装库中提取的。 请注意其中的.../python2.7/site-packages/google/api_core/gapic_v1路径。

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