在Colab Notebook中使用Admanager Python API

时间:2018-12-17 14:18:53

标签: python google-colaboratory admanager

我正在尝试使Google AdManager API可以在Colab笔记本中使用。

按照here的说明,我设法创建了自己的配置YAML文件,将其上传到Colab笔记本中并执行对NetworkService服务的基本调用。一切正常,并按预期方式运行,并返回预期的网络名称和ID。

然后我尝试添加更多的请求,例如this,然后收到此错误消息:

FileNotFoundError                         Traceback (most recent call last)
    /usr/local/lib/python3.6/dist-packages/googleads/common.py in LoadFromStorage(path, product_yaml_key, required_client_values, optional_product_values)
        279   try:
    --> 280     with open(path, 'rb') as handle:
        281       yaml_doc = handle.read()


FileNotFoundError: [Errno 2] No such file or directory: '/root/googleads.yaml',

During handling of the above exception, another exception occurred:

GoogleAdsValueError                       Traceback (most recent call last)
<ipython-input-14-ed9b34dcaa81> in <module>()
     25 if __name__ == '__main__':
     26   # Initialize client object.
---> 27   ad_manager_client = ad_manager.AdManagerClient.LoadFromStorage()
     28   main(ad_manager_client)

/usr/local/lib/python3.6/dist-packages/googleads/ad_manager.py in LoadFromStorage(cls, path)
    202     return cls(**googleads.common.LoadFromStorage(
    203         path, cls._YAML_KEY, cls._REQUIRED_INIT_VALUES,
--> 204         cls._OPTIONAL_INIT_VALUES))
    205 
    206   def __init__(self, oauth2_client, application_name, network_code=None,

/usr/local/lib/python3.6/dist-packages/googleads/common.py in LoadFromStorage(path, product_yaml_key, required_client_values, optional_product_values)
    282   except IOError:
    283     raise googleads.errors.GoogleAdsValueError(
--> 284         'Given yaml file, %s, could not be opened.' % path)
    285 
    286   try:

GoogleAdsValueError: Given yaml file, /root/googleads.yaml, could not be opened.

尽管存在这样的事实,即在笔记本的文件夹(content/googleads.yaml)中上载的相同yaml文件对于第一个请求而言效果很好。

任何帮助表示赞赏。

谢谢!

PS:只是让您知道,我仍处于Python的起步阶段。

1 个答案:

答案 0 :(得分:0)

如果您包括一个最小的repro笔记本,它会显示什么有效和什么无效,这将更容易为您提供帮助。 但是,在黑暗中猜测:起作用的东西有多余的代码,它们在YAML文件的当前目录中查找,而没有的东西则没有。 最简单的解决方法可能是创建一个符号链接,例如:

!ln -s /content/googleads.yaml /root/googleads.yaml