Ошибка при доступе к API Google Adwords через python клиентскую библиотеку на SQL сервере (sp_execute_external_script) - PullRequest
0 голосов
/ 16 июня 2020

У меня странная проблема, и я не знаю, что проверять дальше.

Краткое изложение ситуации:

  • Работа на Windows Server 2019 в качестве администратора, поэтому следует нет проблем с доступом
  • Разработан Python скрипт, который получает данные из Google Adwords API и возвращает pandas фрейм данных
  • Скрипт работает плавно локально, но я хочу автоматизировать его как задание на SQL сервере
  • Установлено SQL Услуги машинного обучения и может успешно выполнять sp_execute_external_script
  • Установленные googleads через pip, согласно документации Microsoft
  • Когда я пытаюсь выполнить следующий код на SQL сервере, я получаю сообщение об ошибке:
    EXECUTE sp_execute_external_script
  @language = N'Python',
  @script = N'
from googleads import adwords
from datetime import datetime, date, time, timedelta
from oauth2client.service_account import ServiceAccountCredentials
from google.oauth2 import service_account
import _locale

_locale._getdefaultlocale = (lambda *args: ["en_US", "UTF-8"])

# API version
version = "v201809"

# Authentication
googleads_client = adwords.AdWordsClient.LoadFromStorage("E:\Python support files\googleads.yaml")
credentials = service_account.Credentials.from_service_account_file("E:\Python support files\Google Ads API-79664b793f87.json")

report_downloader = googleads_client.GetReportDownloader(version=version)

'

Это ошибка:

Msg 39004, уровень 16, состояние 20, строка 0 Ошибка сценария «Python» во время выполнения sp_execute_external_script с HRESULT 0x80004004. Msg 39019, уровень 16, состояние 2, строка 0 Произошла ошибка внешнего сценария:

Ошибка при выполнении. Проверьте вывод для получения дополнительной информации. Отслеживание (последний вызов последним): файл "", строка 5, в файле "C: \ ProgramData \ MSSQLSERVER \ Temp-PY \ Appcontainer1 \ 0ED3B02F-A286-4566-88B0-93CADA623D84 \ sqlindb_0.py", строка 61 , в преобразовании report_downloader = googleads_client.GetReportDownloader (version = version) File "C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ PYTHON_SERVICES \ lib \ googleads \ adwords.py", строка 365, в GetReportDownloader return ReportDownloader (собственный, версия, сервер) Файл "C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ PYTHON_SERVICES \ lib \ googleads \ adwords.py", строка 1205, в init self.proxy_config, self._namespace, self._adwords_client.cache) Файл "C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ PYTHON_SERVICES \ lib \ googleads \ common.py", строка 585, в init transport = _ZeepProxyTransport (timeout, proxy_config, cache)

Msg 39019, уровень 16, состояние 2, строка 0 Произошла ошибка внешнего сценария: File "C: \ Program Files \ Microsoft * 106 0 * Server \ MSSQL15.MSSQLSERVER \ PYTHON_SERVICES \ lib \ googleads \ common.py ", строка 513, в init cache = zeep.cache.SqliteCache () File" C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ PYTHON_SERVICES \ lib \ zeep \ cache.py ", строка 80, в init self._db_path = путь, если путь иначе _get_default_cache_path () File" C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ PYTHON_SERVICES \ lib \ zeep \ cache.py ", строка 158, в _get_default_cache_path path = appdirs.user_cache_dir (" zeep ", False) File" C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ PYTHON_SERVICES \ lib \ appdirs.py ", строка 293, в user_cache_dir path = os.path.normpath (_get_win_folder (" CSIDL_LOCAL_APPDATA ")) File" C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ PYTHON_SERVICES \ lib \ appdirs.py ", строка 481, в _get_win_folder_with_pywin32 dir = shell.SHGetFolderPath (0, getattr (shellcon, csidl_name), 0, 0) * 1037sg * 1038 , Уровень 16, Состояние 2, Строка 0 Внешний скрипт t произошла ошибка: pywintypes.com_error: (-2147024893, «Система не может найти указанный путь.», Нет, Нет)

Ошибка SqlS satelliteCall: Ошибка при выполнении. Проверьте вывод для получения дополнительной информации. Сообщение (я) STDOUT от внешнего скрипта: сбой функции SqlS satelliteCall. Дополнительные сведения см. В выходных данных консоли. Traceback (последний вызов последним): файл "C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ PYTHON_SERVICES \ lib \ site-packages \ revoscalepy \ computecontext \ RxInSqlServer.py", строка 605, в rx_sql_s satellite_call rx_native_call ("SqlS satelliteCall", params) Файл "C: \ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ PYTHON_SERVICES \ lib \ site-packages \ revoscalepy \ RxSerializable.py", строка 375, в rx_native_call ret = px_call (functionname, params)

RuntimeError: сбой функции revoscalepy.

...