1

我正在构建一个网络应用程序(基于谷歌应用程序引擎和 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)上,我可以看到安装了“六”,那么从我的应用程序导入这个模块应该没有问题。这在某种程度上不正确吗?

我一定错过了一些基本的东西,但不明白是什么?请帮忙!

PS:我也尝试过的资源:

A)甚至从我的“main.py”文件中调用:

import six

导致相同的 ImportError。

B) ImportError: No module named 六

C) 未解决: 无法安装 python 六模块

4

1 回答 1

0

当 Python 虚拟环境被激活时,路径被重写为添加{env}/lib/python2.7/. 然而,GAE 本身并不知道虚拟环境。因此,如果您希望six(或其他一些纯 Python 库)可用于您的应用程序,您需要自己安排。有关如何执行此操作的说明,请参见https://cloud.google.com/appengine/docs/standard/python/tools/using-libraries-python-27

于 2018-01-13T01:18:58.287 回答