【发布时间】:2018-06-21 19:03:27
【问题描述】:
我正在构建一个网络应用程序(基于谷歌应用程序引擎和 python 2.7)并尝试导入 Six.move 模块。但是虽然安装了“六”,但是导入的时候并没有找到(注意,我还没有使用像Django这样的框架)。
在我的工作环境(env)上,我跑了:
| => pip show six
Name: six
Version: 1.11.0
Summary: Python 2 and 3 compatibility utilities
Home-page: http://pypi.python.org/pypi/six/
Author: Benjamin Peterson
Author-email: benjamin@python.org
License: MIT
Location: /path/to/file/DeployedProjects/goinpact/env/lib/python2.7/site-packages
Requires:
调用此包的模块是“google.oauth2”中的“id_token.py”
所以,当我运行时
from google.oauth2 import id_token
然后加载我的网络应用程序,导入错误日志显示:
File "/path/to/file/DeployedProjects/goinpact/env/lib/python2.7/site-packages/google/oauth2/id_token.py", line 19, in <module>
from six.moves import http_client
ImportError: No module named six.moves
id_token.py 模块调用:
from six.moves import http_client
...导致上面的日志导入错误。
我的理解是,如果在我的环境 (env) 上,我可以看到安装了“six”,那么从我的应用程序导入这个模块应该没有问题。这在某种程度上不正确吗?
我一定遗漏了一些基本的东西,但不明白什么?请帮忙!
PS:我也尝试过的资源:
一) 甚至从我的“main.py”文件中调用:
import six
导致相同的 ImportError。
B) ImportError: No module named six
C) 未解决: Cannot install python six module
【问题讨论】:
-
我会检查 lib 中的包是否安装了它们自己的(可能是旧的)
six版本,然后可能在供应商要求文件中指定您想要的版本并重新安装您的供应商包。 -
如果这是一个标准的 env 应用程序,请尝试使用 GAE 提供的
six库,方法是在您的app.yaml文件的libraries部分中请求它。见cloud.google.com/appengine/docs/standard/python/tools/… -
我是这样解决这个问题的:stackoverflow.com/a/51616840/901444
标签: python-2.7 google-app-engine google-oauth six