我正在尝试运行自定义条带以将静态文件上传到存储桶。
import os
import sys
sys.path.append("/tools/google_appengine")
from google.appengine.ext import vendor
from google.appengine.api import app_identity
vendor.add('../libraries')
import cloudstorage as gcs
STATIC_DIR = '../dashboard/dist'
def main():
bucket_path = ''.join('/' + app_identity.get_default_gcs_bucket_name())
到目前为止我一直在努力: - 手动初始化存根
def initialize_service_apis():
from google.appengine.tools import dev_appserver
from google.appengine.tools.dev_appserver_main import ParseArguments
args, option_dict = ParseArguments(sys.argv) # Otherwise the option_dict isn't populated.
dev_appserver.SetupStubs('local', **option_dict)
但是在导入dev_appserver
lib时,这会导致导入错误。
有什么方法可以解决这个问题吗? 我需要这个脚本来进行自动部署过程。
答案 0 :(得分:0)
我不熟悉dev_appserver.SetupStubs()
,但在测试平台中运行单元测试时收到了同样的错误消息。在该环境中,您必须为要测试的任何服务明确启用存根(请参阅docs)。
特别是,初始化app identity stub解决了我的问题:
from google.appengine.ext import testbed
t = testbed.Testbed()
t.init_app_identity_stub()
答案 1 :(得分:0)
No api proxy found for service <blah>
错误消息通常表示尝试在独立脚本中使用GAE标准env基础结构(在您的情况下为google.appengine
下的包),这是不正常的。请参阅GAE: AssertionError: No api proxy found for service "datastore_v3"。
您有两个选择: