谷歌的2行blobstore上传示例不起作用

时间:2013-03-30 23:41:24

标签: python google-app-engine sdk

我知道有大量的blobstore问题,但我已经回到最基本的情况而且我被卡住了!

从长远来看,我在Google App Engine上使用纯粹的Django和Google Cloud SQL,我想将文件上传到Blobstore(但我无法上传文件)。

我正在尝试从Google的Blobstore概述(https://developers.google.com/appengine/docs/python/blobstore/overview)运行以下示例

from google.appengine.ext import blobstore
upload_url = blobstore.create_upload_url('/upload')

但我得到以下内容:

$ python
Python 2.7.2+ (default, Jul 20 2012, 22:15:08) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<snip>/google_appengine_1.7.6/google/appengine/api/blobstore/blobstore.py", line 270, in create_upload_url
gs_bucket_name=gs_bucket_name)
File "<snip>/google_appengine_1.7.6/google/appengine/api/blobstore/blobstore.py", line 334, in create_upload_url_async
_get_result_hook, lambda rpc: rpc.response.url())
File "<snip>/google_appengine_1.7.6/google/appengine/api/blobstore/blobstore.py", line 223, in _make_async_call
rpc = create_rpc()
File "<snip>/google_appengine_1.7.6/google/appengine/api/blobstore/blobstore.py", line 217, in create_rpc
return apiproxy_stub_map.UserRPC('blobstore', deadline, callback)
File "<snip>/google_appengine_1.7.6/google/appengine/api/apiproxy_stub_map.py", line 405, in __init__
self.__rpc = CreateRPC(service, stubmap)
File "<snip>/google_appengine_1.7.6/google/appengine/api/apiproxy_stub_map.py", line 67, in CreateRPC
assert stub, 'No api proxy found for service "%s"' % service
AssertionError: No api proxy found for service "blobstore"

我已经回归到最基本的情况:Google App Engine SDK 1.7.6(目前最新)和Python 2.7.2。

我的道路是:

>>> from pprint import pprint as p
>>> p(sys.path)
['',
'<snip>/google_appengine_1.7.6',
'<snip>/google_appengine_1.7.6/lib',
'<snip>/google_appengine_1.7.6/lib/yaml-3.10',
'<snip>/google_appengine_1.7.6/lib/django-1.4',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PIL',
'/usr/lib/python2.7/dist-packages/gst-0.10',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7']

有趣的是,如果我只用路径中的基本GAE目录来尝试这个,我得到:

ImportError: No module named yaml

这是否表明SDK中存在错误配置的内容?

我感谢您提供的一切!

1 个答案:

答案 0 :(得分:2)

看起来你是从普通的python提示尝试这个。

你有一些认真的工作需要你去工作(也许如果你的新人可能不会让它工作,我一直在使用appengine,因为它出来了,我不打扰尝试; - )。

如果你想使用python shell,你应该使用remote_api_shell,并连接到服务器(dev或prod appengine)和你正在探索。

您引用的文档中的代码片段是由应用引擎应用运行的代码,可以在开发服务器下或生产中。