import cloudstorage,ImportError:没有名为google.appengine.api的模块

时间:2018-02-01 14:15:44

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

我想使用Google Cloud Storage Client Library Functions

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

我尝试使用python -c "import cloudstorage"导入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

我错过了什么吗?

3 个答案:

答案 0 :(得分:5)

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

图书馆需要安装在您的GAE应用中,请参阅Copying a third-party library

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

答案 1 :(得分:1)

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

  

pip install --upgrade gcloud

     

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

答案 2 :(得分:0)

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

import pkgutil
import google

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

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