首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何设置Google凭据以调用Heroku上的Python应用程序中的Google

如何设置Google凭据以调用Heroku上的Python应用程序中的Google
EN

Stack Overflow用户
提问于 2018-05-08 05:14:14
回答 1查看 1.7K关注 0票数 0

我用Flask创建了一个Python项目,并将其作为应用程序上传到Heroku上。这个应用程序的目标是从一张从前端发送的薯片产品/袋子的照片中识别这个品牌。具体地说:

  1. 前端发送一张薯片产品的照片。
  2. Heroku上的应用程序收到了这张照片
  3. 该应用程序正在调用GCP Vision API以检索有关此产品的信息(使用OCR等)
  4. 该应用程序正在将产品的品牌发回前端。

调用GCP Vision API的主要python脚本如下:

代码语言:javascript
运行
AI代码解释
复制
from google.cloud import vision
from google.cloud.vision import types
import os

# For local
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/Users/User/PycharmProjects/Project_brand/Credentials.json"

brands = ['lays', 'pringles', 'ruffles', 'kettle']

def brand_detect(image):
    web, text = annotate(image)

    response_text = brand_text(text, brands)

    if (response_text is not None):

        return response_text

    else:

        response_web = brand_web(web, brands)

        if (response_web is not None):

            return response_web

        else:
            return 'Not Found'




def annotate(image):
    """Returns web annotations given the path to an image."""
    client = vision.ImageAnnotatorClient()

    image = types.Image(content=image)

    web_detection = client.web_detection(image=image).web_detection

    text_detection = client.document_text_detection(image=image)

    return web_detection, text_detection


def brand_web(web, brands):
    if web.web_entities:

        for entity in web.web_entities:

            for brand in brands:

                if (brand in entity.description.lower()) and (entity.score > 0.65):

                    return brand


def brand_text(text, brands):
    if text.full_text_annotation.text:

        for brand in brands:

            if (brand in text.full_text_annotation.text.lower()):
                return brand

然后从主brand_detect()函数(在此应用程序中用另一个脚本编写)调用函数flask,以便将产品的品牌发送到前端。

Credentials.json文件位于项目的文件夹中,它包含用于调用GCP Vision API的凭据。看起来是这样的:

代码语言:javascript
运行
AI代码解释
复制
{
  "type": "service_account",
  "project_id": "**********************",
  "private_key_id": "**********************",
  "private_key": "-----BEGIN PRIVATE KEY-----**********************-----END PRIVATE KEY-----\n",
  "client_email": "**********************",
  "client_id": "**********************",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "**********************"
}

该应用程序在本地与PyCharm工作良好,但显然,我必须做更多的事情,以便从我的应用程序调用GCP Vision API在Heroku和做同样的任务。我的意思是,os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/Users/User/PycharmProjects/Project_brand/Credentials.json"行在Heroku上没有任何意义/实用程序,所以我必须修改上面的脚本,并在Heroku上做一些事情,以便设置谷歌凭据,并从Heroku上的python应用程序调用GCP Vision API

step-by-step 能给我解释一下如何修改上面的脚本,以及在Heroku上做些什么,以便像我在本地做的那样,在Heroku上调用 GCP Vision API 吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-09 01:12:30

我的问题的解决办法(令人惊讶)非常简单。

我只需要替换

代码语言:javascript
运行
AI代码解释
复制
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/Users/User/PycharmProjects/Project_brand/Credentials.json"

使用

代码语言:javascript
运行
AI代码解释
复制
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "Credentials.json"

这既适用于我在Heroku上的应用程序,也适用于Credentials.json文件在项目/ app文件夹中的本地应用程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50234541

复制
相关文章
python 调用Google Tran
调用Google 翻译API进行翻译 #!/usr/bin/python #coding: UTF-8 import sys reload(sys) sys.setdefaultencoding('utf8') from xml.etree import ElementTree as ET #引入解析xml文件的模块 import re import urllib,urllib2 #引入接入网络接口API的模块 from socket import error as SocketE
py3study
2020/01/09
1.1K0
博客上如何设置最佳 Google Adsense 广告投放位置
前面我总结了个人的 Google Adsense 投放经验,其中说到最重要的是位置, Google的建议是:博客一般分成两种页面,主页(列表页),日志页,所以可以分别对两种位置就行针对性摆放:
Denis
2023/04/14
9570
博客上如何设置最佳 Google Adsense 广告投放位置
Python3调用Google翻译
想弄一个批量翻译的东西,奈何百度翻译别人根本不研究,所以只能看谷歌翻译的了;这份代码的作者写的太聪明了,是真的很棒,思路很好,看到这样的代码简直年轻10岁
Elapse
2020/08/17
1.5K1
Google Python风格规范(上)
好的代码风格,给人舒服的感觉,今天介绍一下谷歌的Python风格规范,由于规范比较多,将分为两次介绍。
王强
2018/08/09
7040
怎样用Google APIs和Google的应用系统进行集成(3)—-调用Google 发现(Discovery)API的RESTful服务
说了这么多,那么首先同意我以Google Discovery RESTful服务为例,给大家演示怎样用最普通的Java代码调用Google Discovery RESTful服务。
全栈程序员站长
2022/07/12
9270
google code 上源码的下载方法
SVN全称是Subversion,是Apache的一个子项目 ,具体能够到SVN中文站(http://www.subversion.org.cn/)去了解下。Google Code是Google的一个开放源码计划,当中包含源码托管,即提供一个server来保存、共享和管理源码。每一个人都能够创建自己的Project,至于空间的大小,请看下图:
全栈程序员站长
2022/07/09
9420
google code 上源码的下载方法
如何屏蔽博客园中的Google广告
博客园中每篇文章的评论窗口最下面就带了一个Google的广告,当然我这个博客也不例外。不过这些广告我看着就不爽,于是就想办法把该死的广告去掉。使用Mathon2打开博客园中的任何一篇文章,选定Google广告和周围区域,右键“查看选定区域代码”就可以看到原来是Google的JS文件在我的页面中生成了一个Iframe,具体代码为:
深蓝studyzy
2022/06/15
7280
如何用 Google Colab 练 Python?
自动配置、有效求助、协作编程、版本控制。一站式解决 Python 新手练习中的痛点
王树义
2019/03/08
1.8K0
如何将你的Hexo博客部署到Google Firebase上
博主最近在 白嫖万恶的资本 将博客部署到新的CDN上,所以在寻找免费的静态Web应用部署工具,发现了Google Firebase。
pai233
2022/04/26
1.4K0
如何将你的Hexo博客部署到Google Firebase上
google colab上如何下载bert相关模型
https://storage.googleapis.com/bert_models/2018_10_18/cased_L-12_H-768_A-12.zip https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip
西西嘛呦
2021/03/22
2.4K0
Google 的 Firebase 如何删除项目
https://www.ossez.com/t/google-firebase/13792
HoneyMoose
2021/11/02
3.2K0
Google 的 Firebase 如何删除项目
如何关闭google的安全搜索
我们平常使用google搜索,默认是已启用安全搜索的。例如在google搜索“1”,右上角会出现“已启用安全搜索”。 进入google帮助找到安全搜索内容https://support.google.com/websearch/answer/510 屏蔽 Google 上的色情内容 您可以使用安全搜索设置来滤除 Google 上包含露骨内容的搜索结果(例如色情内容)。安全搜索并非 100% 准确,但它能帮您屏蔽掉大多数成人内容。 您可将安全搜索用作一种家长控制方式,以使孩子远离您手机
小歪
2018/04/04
9.1K0
如何关闭google的安全搜索
Google S2 中的 CellID 是如何生成的 ?
笔者在《高效的多维空间点索引算法 — Geohash 和 Google S2》文章中详细的分析了 Google S2 的算法实现思想。文章发出来以后,一部分读者对它的实现产生了好奇。本文算是对上篇文章的补充,将从代码实现的角度来看看 Google S2 的算法具体实现。建议先读完上篇文章里面的算法思想,再看本篇的代码实现会更好理解一些。
一缕殇流化隐半边冰霜
2018/08/30
1.8K0
Google S2 中的 CellID 是如何生成的 ?
Google Colab上的YOLOv3 PyTorch
对于计算机视觉爱好者来说,YOLO(一次只看一次)是一种非常流行的实时对象检测概念,因为它的速度非常快并且性能出色。
代码医生工作室
2020/04/14
2.6K0
Google Colab上的YOLOv3 PyTorch
Openlayers中Google地图的加载
在实现的时候,参考了mygisforum的文章http://blog.csdn.net/mygisforum/article/details/7582449的内容,同时结合gwc的gridset,实现了google切片在Openlayers2中的调用与展示。
牛老师讲GIS
2018/10/23
2K0
Openlayers中Google地图的加载
Google Colab上安装TensorRT
NVIDIA TensorRT是一个高性能深度学习推理平台。它包括深度学习推理优化器和运行时,可为深度学习推理应用程序提供低延迟和高吞吐量。推理时,基于TensorRT的应用程序比仅CPU平台的执行速度快40倍。使用TensorRT,您可以优化所有主流框架中训练出的神经网络模型。
云水木石
2019/07/02
2.4K0
Google Colab上安装TensorRT
点击加载更多

相似问题

运行在Google应用引擎上的Python应用程序。如何调用Google?

14

heroku上的Google认证

11

Rails 3: Google应用程序/ Heroku的SMTP设置

41

如何在Heroku上配置Google?

10

Google App Engine上的Golang应用程序调用Python脚本

112
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档