python - Windows 上的 Bigquery 命令行工具

标签 python subprocess google-bigquery

这可能很简单,但很长一段时间我都收到这个错误!

在 windows 和 python 2.7 上

import subprocess

p = subprocess.Popen(["C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\bq"])

追溯(最近的调用最后): 文件“”,第 1 行,位于 init 中的文件“C:\Python27\lib\subprocess.py”,第 710 行 读错,写错) 文件“C:\Python27\lib\subprocess.py”,第 958 行,在 _execute_child 中 启动信息) WindowsError: [错误 2] 系统找不到指定的文件

当我使用 bq 从命令提示符正常运行时,它运行完美。 我在子流程和 bq 中遗漏了一些东西。

谢谢

编辑: 在尝试了下面提供的几种解决方案后,我发现当我使用“shell=True”时,大多数命令都适用于 Windows shell!

e.g: p = subprocess.Popen('dir', shell=True)

最佳答案

使用其中之一:

from subprocess import Popen
p = Popen(["C:/Program Files/Google/Cloud SDK/google-cloud-sdk/bin/bq.cmd"])
p = Popen([r"C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\bq.cmd"])

适用于 Windows 的 Google Cloud SDK 中的 bq 可执行文件称为 bq.cmd。从命令行调用它时,cmd 会自动查找 .cmd 扩展名,而 python 解释器则不会。

关于python - Windows 上的 Bigquery 命令行工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28464658/

相关文章:

python - Pandas Dataframe 合并列上的行以形成字典列表

python - 有没有更好的方法来控制子进程的 PYTHONPATH?

python - 使用子进程时如何限制程序的执行时间?

firebase - 从 BigQuery 中删除带有 app_instance_id 的 firebase 实例

sql - 需要为文本正文中的特定单词格式化 BigQuery 中的表格

python - 如何使用 python 中的模式文件在 sqlite3 中创建 db 文件

python - 计算列表中值的重复次数并生成输出文件

python - 如何获取Python Scrapy工具抓取的Item数量?

python 子进程终端 mac osx

google-bigquery - json 的 bigquery loadJob - 强制模式自动检测中的字段为字符串