Использование Admanager Python API в блокноте Colab
Я пытаюсь заставить работать Google AdManager API в блокноте Colab.
Следуя приведенным здесь инструкциям, мне удалось создать собственный файл конфигурации YAML, загрузить его в записную книжку Colab и выполнить основной вызов NetworkService
оказание услуг. Все идет хорошо и ведет себя как ожидалось, возвращая ожидаемое имя сети и идентификатор.
Затем я пытаюсь добавить еще несколько таких запросов и получаю следующее сообщение об ошибке:
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.
И это несмотря на то, что тот же файл yaml загружен в папку ноутбука (content/googleads.yaml
) отлично работает с первым запросом.
Любая помощь приветствуется.
Спасибо!
PS: просто чтобы вы знали, я все еще нахожусь в младенчестве с Python.
1 ответ
Было бы легче помочь вам, если бы вы включили минимальный блокнот для репро, показывающий, что работает, а что нет. Хотя догадываться в темноте: у того, что сработало, был дополнительный код, который ищет в текущем каталоге файл YAML, а у того, который этого не сделал. Простейшим решением может быть создание символической ссылки, например:
!ln -s /content/googleads.yaml /root/googleads.yaml