1

目标:将 GAE 与 Python 和 Google Cloud Storage 结合使用,以更有效地存储和提供图像,最终使用图像 API。

问题:尽管安装成功,但无法找到正确的模块(httplib2 和 6)。


运行时示例

Python 代码示例 A:

from google.cloud import storage
from google.appengine.api import app_identity
from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
import webapp2

返回样本 A:

ImportError:没有名为 google_auth_httplib2 的模块

注意:六个也有类似的错误。“没有名为六的模块”


安装详情

python安装在:

C:\Python27

六个安装在:

C:\python27\lib\site-packages\six-1.10.0-py2.7.egg

httplib2 安装在:

C:\Python27\Lib\site-packages\httplib2-0.9.2-py2.7.egg-info

在命令行中运行“C:>pip install httplib2”会返回:

“Requirement already satisfied: httplib2 in c:\python27\lib\site-packages”

在命令行中运行“C:>pip install 6”会返回:

Requirement already satisfied: six in c:\python27\lib\site-packages\six-1.10.0-py2.7.egg

GAE 云存储客户端安装在:

C:\Python27\Lib\site-packages\GoogleAppEngineCloudStorageClient-1.9.22.1-py2.7.egg-info

使用“dev_appserver.py”的 GAE SDK 服务器托管。在:

C:\Users\sebastian\Documents\Web Projects\Cookbook

此位置还包含 app.yaml 文件。

将模块复制到 app.yaml 位置

httplib2将和文件夹复制six-1.10.0-py2.7.egg到我的app.yaml目录。


附录1:

应用程序.yaml

runtime: python27
api_version: 1
threadsafe: true

handlers:

    - url: /
      script: homegcs.app

    - url: /static
      static_dir: static

    - url: /.*
      script: home.app

    - url: /index\.html
      script: home.app

    - url: /stylesheets
      static_dir: stylesheets

    - url: /(.*\.(gif|png|jpg))$
      static_files: static/\1
      upload: static/.*\.(gif|png|jpg)$

    - url: /admin/.*
      script: admin.app
      login: admin

    - url: /.*
      script: not_found.app

包含 App.yaml 的文件夹结构

4

2 回答 2

1

您的包需要与项目一起上传,或者添加到 app.yaml(如果它们在 App Engine 中可用)。 six是一个可用的库,因此,在 中app.yaml,添加:

libraries:
- name: six
  version: "1.9.0"

如果您将httplib2包放在与 相同的级别app.yaml,它应该与项目一起上传,并且可以在生产中使用。

另一个用户google_auth_httplib2也添加了一个包,并将其与项目一起上传。虽然我认为应该可以直接使用:

pip 安装 google-cloud 后找不到模块 google_auth_httplib2 我该如何解决?

** 您的 url 处理程序中也存在问题app.yaml。这是所有网址的通配符:

- url: /.*
    script: home.app

所以,下面的每个处理程序都不会被击中。

于 2017-02-07T06:36:30.113 回答
0

您需要在项目中安装 google-cloud,如下所示:

pip install google-cloud -t [my_project]/lib/google-cloud

确保首先在 lib 文件夹中创建该 google-cloud 文件夹。完成此操作后,更改或创建 appengine_config.py(在 /my_project 中)并包含以下内容:

from google.appengine.ext import vendor

vendor.add('lib/google-cloud')

现在一切都应该工作了。

于 2017-02-10T20:14:23.003 回答