使用Cloud Storage with Python及其教程的模块出错

时间:2016-03-15 10:51:25

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

我正在尝试测试Google云端存储以存储图片(我需要在我正在开发的应用中使用它),并且我正在关注他们在其网页中的Bookshelf App tutorial

我正在使用python,问题是当我执行requirementes.txt时,所有软件包都安装得很好,但是当我尝试执行代码时,我看到了这个错误:

...sandbox.py", line 948, in load_module
    raise ImportError('No module named %s' % fullname)
ImportError: No module named cryptography.hazmat.bindings._openssl

我一直在尝试数百种posibles解决方案,仅重新安装加密包,尝试使用同一模块的不同版本,并安装包含它的其他软件包,但任何事情都解决了问题。

要求包含:

Flask==0.10.1
gcloud==0.9.0
gunicorn==19.4.5
oauth2client==1.5.2
Flask-SQLAlchemy==2.1
PyMySQL==0.7.1
Flask-PyMongo==0.4.0
PyMongo==3.2.1
six==1.10.0

我确信这是一个简单的错误,但我找不到解决问题的方法。 欢迎任何帮助。感谢。

编辑:

当我尝试使用python程序时,这很好用:

import os
from gcloud import storage

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'key.json'

client = storage.Client(project='xxxxxxx')
bucket = client.get_bucket('yyyyyyy')
f = open('profile.jpg', 'rb')
blob = bucket.blob(f.name)
blob.upload_from_string(f.read(), 'image/jpeg')
url = blob.public_url
print url

为什么我不能在GAE应用程序中使用没有错误的gcloud库?

1 个答案:

答案 0 :(得分:0)

您似乎正在关注书架教程,但根据您的堆栈跟踪中的这一行:

...sandbox.py", line 948, in load_module

它暗示您正在使用dev_appserver.py来运行代码。除非您使用compat运行时,否则对于托管虚拟机/灵活性而言,这不是必需的。

如果是这种情况,tutorial会提供正确的说明:

$ virtualenv env
$ source env/bin/activate
$ pip install -r requirements.txt
$ python main.py

(如果不是这种情况,请随时对此进行评论,并提供有关您如何运行应用程序的详细信息。)