我正在构建一个网络应用程序(基于谷歌应用程序引擎和python 2.7)并尝试导入six.move模块。但是虽然安装了“six”,但在导入时却找不到它(注意,我还没有像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
然后加载我的Web应用程序,导入错误日志显示为:
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:资源我也尝试过:
A) 甚至从我的“main.py”文件中调用:
import six
导致相同的ImportError。
答案 0 :(得分:0)
激活Python虚拟环境后,将重写路径以添加{env}/lib/python2.7/
。但是,GAE本身并不了解虚拟环境。因此,如果您希望应用程序可以使用six
(或其他一些纯Python库),您需要自己安排。有关如何执行此操作的说明位于https://cloud.google.com/appengine/docs/standard/python/tools/using-libraries-python-27