Мне нужно использовать модуль подпроцесса Python для запуска команд BigQuery CLI через Google Cloud SDK. Когда я запускаю приведенную ниже команду из командной строки, все работает так, как я ожидаю:
Я попытался запустить эту команду bq в следующем сценарии ios безуспешно:
- в тандеме с полным путем к файлу windows cmd.exe
- в тандеме с полным путем к файлу bq.cmd
- после первого запуска полного пути к файлу bq.cmd в тандеме только с помощью команды bq
Вот код из второго примера, который я перечислил, потому что я думаю, что он наиболее близок к правильности?
list_tables_bigquery = 'bq ls redacted:dataid'
try:
process = subprocess.Popen(["C:\\Users\\redacted.user\\AppData\\Local\\Google\Cloud SDK\\google-cloud-sdk\\bin\\bq.cmd",list_tables_bigquery],stdout=subprocess.PIPE, stderr = subprocess.STDOUT,shell=True,universal_newlines=True)
except Exception as error:
print(error)
powershell_communication = process.communicate()[0]
print(powershell_communication)
Вот сообщение об ошибке:
FATAL Команда 'bq -q ls redacted: dataid' unknown
Запустите 'bq.py help', чтобы получить справку
Спасибо!