【问题标题】:import cloudstorage, ImportError: No module named google.appengine.api导入云存储,ImportError:没有名为 google.appengine.api 的模块
【发布时间】:2018-07-11 21:37:41
【问题描述】:

我想使用Google Cloud Storage Client Library Functions。

为此,我必须导入 cloudstorag。要获得cloudstorage,我下载Google Cloud Storage client library。

我尝试使用python -c "import cloudstorage" 导入云存储。我收到以下错误:

Traceback (most recent call last):
File "<string>", line 1, in <module>
  File "cloudstorage/__init__.py", line 20, in <module>
    from .api_utils import RetryParams
  File "cloudstorage/api_utils.py", line 45, in <module>
    from google.appengine.api import app_identity
ImportError: No module named google.appengine.api

我错过了什么吗?

【问题讨论】:

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


【解决方案1】:

你可以添加这行,这将添加sdk工具的路径:

import pkgutil
import google

google.__path__ = pkgutil.extend_path(google.__path__, google.__name__)

对于单元测试,在独立模式下运行可能很有用。

【讨论】:

  • 我猜这个答案与问题无关。
  • 现在,应该更清楚它与问题有关:)
【解决方案2】:

当您执行python -c "import cloudstorage" 时,您正在尝试运行一个独立的应用程序。但是您尝试使用的 GCS 库用于(标准环境)GAE 应用程序,它不能作为独立应用程序执行,它需要在 GAE 沙箱中运行(本地为 dev_appserver.py)。见GAE: AssertionError: No api proxy found for service "datastore_v3"。

并且该库需要安装在您的 GAE 应用程序中,请参阅 Copying a third-party library。

如果您不是在开发标准的 env GAE 应用程序,并且确实想编写一个独立的应用程序,那么您没有查看正确的文档。您需要使用与 GAE 特定的库不同的库。见Cloud Storage Client Libraries

【讨论】:

    【解决方案3】:

    您的系统上似乎没有安装 gcloud。

    pip install --upgrade gcloud

    pip install --upgrade google-api-python-client

    【讨论】:

    • gcloud 和 google-api-python-client 都已安装。我仍然遇到同样的错误。
    • 在同一个安装中?也就是说,您正在执行python -c "import cloudstorage",而 pip 可能是 pip3 安装并在 python3 中安装。
    • 安装在一个名为 ve_python2 的 virtualenv 中。 python --version Python 2.7.14 和 pip --version pip 9.0.1 from ve_python2/lib/python2.7/site-packages (python 2.7)。 ve_python2/lib中没有其他蟒蛇。
    猜你喜欢
    • 2017-10-27
    • 2018-02-08
    • 2021-01-01
    • 2020-11-28
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2019-02-06
    相关资源
    最近更新 更多