Я нашел проблему. И это было связано со свойствами шага Execute Process Task
пакета служб SSIS ...
Как я заметил выше, я выполнил скрипт Python .bat
файлом с командой внутри:
C:\Python27\python.exe C:\BI\API\Python_GoogleAnalytics_Reporting\v3_api_analytics\google_analytics_api_v3_10krows_nosampling_multiple_profiles.py
.
Само выполнение .bat
работало нормально, но выполнение того же .bat
из пакета служб SSIS, что и шаг Execute Process Task
- возвращает вышеуказанные ошибки.
В журналах ошибок в начале мы видим:
C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DTS \ binn > C:\Python27\python.exe C:\BI\API\Python_GoogleAnalytics_Reporting\v3_api_analytics\google_analytics_api_v3_10krows_nosampling_multiple_profiles.py
C: \ Python27 \ lib \ site-packages \ oauth2client_helpers.py: 260: Предупреждение пользователя: Не удается получить доступ к analytics.dat: Нет такого файла или каталога
warnings.warn (_MISSING_FILE_MESSAGE.format (имя файла))
Что говорит изначально, что в рабочей папке скрипта нет файла analytics.dat
.
Но я ожидал, что скрипт выполняется в той же папке, где он находится, и там уже был файл C:\BI\API\Python_GoogleAnalytics_Reporting\v3_api_analytics\analytics.dat
Но затем я заметил, что на первом месте в этом сообщении (я отметил его как полужирный ) находится рабочая папка выполнения внешнего скрипта, скрипт запускается в папке SSIS.
Я обнаружил , что когда процесс запускается из служб SSIS, он не запускается из той же папки, что и расположенный исполняемый файл .bat
.
Чем отличается .bat
от прямого исполнения файла.
Итак, необходимо дополнительно указать свойство рабочей папки шага Execute Process Task
пакета служб SSIS.
Я установил такое значение свойства:
Рабочий каталог: C:\BI\API\Python_GoogleAnalytics_Reporting\v3_api_analytics\
И все отлично работает!