Google Cloud 和 Appengine Python 包冲突

Google Cloud and Appengine Python Package conflict

我正在学习 google 的应用程序引擎教程,并完成了 simple example 发布表单和检索信息的工作。通过教程步骤,我必须安装 Google Cloud SDK 和 appengine 库。

它工作正常。

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

安装两个 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'
]

我在这里错过了什么?

运行 python 从同一 virtualenv 中的终端我可以毫无问题地导入 google.clou 包。仅当我 运行 使用 dev_appserver.py

时才会出现错误消息

Dan Cornilescu 链接到 ,看起来可能有用。

如果这不起作用,您通常可以破解导入路径来修复它。我通常根本不将 App Engine 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`

如果 none 这些方法有效,请发表评论。

问题是我使用 Linux tar.gz package instead of the Debian/Ubuntu installation 过程安装了 Google Cloud SDK。

tar.gz 包以某种方式弄乱了我的 python 路径。创建新环境已解决。