googlecloudvisionapi-Python

googlecloudvisionapi-Python,python,google-cloud-vision,Python,Google Cloud Vision,在我的google cloud vision代码中,我似乎找不到添加API密钥的位置或需要定位到google凭据文件的位置: import argparse import base64 import httplib2 import validators import requests from apiclient.discovery import build from oauth2client.client import GoogleCr

在我的google cloud vision代码中,我似乎找不到添加API密钥的位置或需要定位到google凭据文件的位置:

    import argparse
    import base64
    import httplib2
    import validators
    import requests

    from apiclient.discovery import build
    from oauth2client.client import GoogleCredentials


    def main(photo_file):
      '''Run a label request on a single image'''

      API_DISCOVERY_FILE = 'https://vision.googleapis.com/$discovery/rest?version=v1'
      http = httplib2.Http()

      credentials = GoogleCredentials.get_application_default().create_scoped(
          ['https://www.googleapis.com/auth/cloud-platform'])
      credentials.authorize(http)

      service = build('vision', 'v1', http, discoveryServiceUrl=API_DISCOVERY_FILE)

    if __name__ == '__main__':
      parser = argparse.ArgumentParser()
      parser.add_argument(
        'image_file', help='The image you\'d like to label.')
      args = parser.parse_args()
      main(args.image_file)

    photo_file = "image_of_bottle.jpg"
    main(photo_file)
有人知道我可以在哪里添加API密钥或定位到凭据文件吗

编辑:添加了Eray Balkanli建议的更改,我在通话中添加了我的图像文件。我不确定我是否做对了:

import argparse
import base64
import httplib2
import validators
import requests

from apiclient.discovery import build
from oauth2client.client import GoogleCredentials


def main(photo_file,developerkey):
  '''Run a label request on a single image'''

  API_DISCOVERY_FILE = 'https://vision.googleapis.com/$discovery/rest?version=v1'
  http = httplib2.Http()

  credentials = GoogleCredentials.get_application_default().create_scoped(
      ['https://www.googleapis.com/auth/cloud-platform'])
  credentials.authorize(http)

  service = build('vision', 'v1', http, discoveryServiceUrl=API_DISCOVERY_FILE,developerkey=INSERT API KEY)

if __name__ == '__main__':
  parser = argparse.ArgumentParser()
  parser.add_argument(
    'image_file', help='The image you\'d like to label.')
  args = parser.parse_args()
  main(args.image_file)

photo_file = "image_file.jpg"
main(photo_file,developerkey)
我收到了以下错误:

usage: googleimagetest_v.4.py [-h] image_file
googleimagetest_v.4.py: error: too few arguments

有人知道我如何解决这个错误吗

Google Vision API文档为您提供了如何获取凭据的分步指南,该页面的最后一节介绍了:

应用程序向Google云进行身份验证的最简单方法 平台API服务是通过使用应用程序默认凭据提供的 (ADC)。使用ADC的服务首先在 GOOGLE\u应用程序\u凭据环境变量。除非你 特别希望ADC使用其他凭证(例如,用户 凭据),建议您将此环境变量设置为 到您的服务帐户密钥文件(当您 创建了服务帐户密钥,如设置服务中所述 帐户

$export GOOGLE\u应用程序\u凭据=

如果这很重要(如果你还没有注册),谷歌会让你访问他们的云平台(价值300美元,365天)。他们的低,imho,for Vision API应该让你为你的测试做很多事情


现在,请注意代码中的错误;尽管您对错误的描述并不清楚,但您的代码似乎接受了一个参数,但您正在尝试在没有参数的情况下运行python脚本。您可以按以下方式运行代码:

python googleimagetest_v.4.py "image_file.jpg"
您不需要以下两行代码(因为这是对
main()
的重复调用)


您已经定义了
main()
函数接受两个参数,但当您在
\uuuuu main\uuuuuuu
部分调用它时,您传递的是一个参数。您可能也想解决这个问题。

我试图问您是如何运行类的。您应该运行这个类:$python googleimagetest\u v.4.py image\u文件……如何运行请插入问题打开。检查这个问题:您看过python示例吗?这个示例包含有关凭据设置的信息
photo_file = "image_file.jpg"
main(photo_file,developerkey)