【问题标题】:Google Cloud and Appengine Python Package conflict谷歌云和 Appengine Python 包冲突
【发布时间】:2017-05-17 01:44:28
【问题描述】:

我正在浏览 google 的 appengine 教程并制作了 simple example 发布表单和检索信息。通过教程步骤,我必须使用 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运行它时才会出现错误消息

【问题讨论】:

标签: python google-app-engine google-cloud-python gcloud-python


【解决方案1】:

Dan Cornilescu 链接到 this question,看起来它可能会起作用。

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

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

【讨论】:

  • 嗨,比尔,这两个包的路径已经在 google.__path__ 中列出。我在问题中添加了更多信息。还有其他想法吗?
  • 是的,我的与 Dan Cornilescu 链接中提出的相同。
  • @Maviles,对不起,你让我有点难过,也许你可以在一个简单的 Github repo 上复制它,我可以看看?
  • 嗨,比尔,我把它放在 github repo github.com/mhaa/gclouderror 非常感谢您的帮助。谢谢
  • 您的代码示例对我来说在 dev_appserver.py 上运行良好,没有导入错误。在 gcloud 139.0.1 上。在运行 dev_appserver.py 之前,您是否偶然弄乱了 PYTHONPATH 环境变量?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    相关资源
    最近更新 更多