2

我正在浏览谷歌的 appengine 教程,并制作了发布表单和检索信息的简单示例。通过教程步骤,我必须使用 appengine 库安装 Google Cloud SDK。

它工作正常。

向前迈出一步,我 pip 安装了“ google-cloud ”包,以从 Google 存储中检索文件。

安装两个谷歌云包后,尝试从我的main.py文件中简单导入时:

from google.cloud import storage

我得到错误:

ImportError: No module named google.cloud.storage

打印google.__path__我可以看到两个包的正确路径:

[
'/home/xpto/.virtualenvs/dev01/local/lib/python2.7/site-packages/google',
'/home/xpto/.virtualenvs/dev01/lib/python2.7/site-packages/google', 
'/home/xpto/Software/google-cloud-sdk/platform/google_appengine/google', 
'/home/xpto/projects/testProject01/lib/google'
]

我在这里想念什么?

在同一个 virtualenv 中从终端运行 python 我可以毫无问题地导入 google.clou 包。仅当我使用运行它时才会出现错误消息dev_appserver.py

4

2 回答 2

3

Dan Cornilescu 链接到这个问题,看起来它可能有效。

如果这不起作用,您通常可以破解导入路径来修复它。我通常根本不将应用引擎 SDK 添加到我的 virtualenv 中,然后手动添加它:

import google

google.__path__.append('/path/to/appengine_sdk//google_appengine/google')
sys.path.insert(0, gae_dir) # might not be necessary

import google.appengine # now it's on your import path`

如果这些方法都不起作用,请发表评论。

于 2017-01-03T03:51:50.550 回答
0

问题是我使用Linux tar.gz包而不是Debian/Ubuntu 安装过程安装了 Google Cloud SDK。

不知何故,tar.gz 包弄乱了我的 python 路径。创建一个新环境解决了。

于 2017-02-04T14:16:07.307 回答