当前位置: 首页 > 知识库问答 >
问题:

Windows上的Bigquery命令行工具

束俊英
2023-03-14

这可能很简单,但在相当长的一段时间内,我都会遇到这个错误!

在windows和python 2.7上

导入子流程

p =子流程。popen([" C:\ Program Files \ Google \ Cloud SDK \ Google-Cloud-SDK \ bin \ bq "])

回溯(最近调用最后):文件“”,第 1 行,在文件“C:\Python27\lib\subprocess.py”,第 710 行,初始化错误,错误) 文件“C:\Python27\lib\subprocess.py”,第 958 行,_execute_child启动信息) Windows错误:[错误 2] html" target="_blank">系统找不到指定的文件

当我使用bq从命令提示符正常运行时,它运行得很好。我缺少子进程和bq的一些东西。

谢啦

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

例如:p=subprocess.Popen('dir', shell=True)

共有3个答案

燕智
2023-03-14

您需要提供全名,包括文件扩展名,例如,

from subprocess import Popen

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

注意:<code>。exe</code>结束。

r"-原始字符串文字用于避免转义Windows路径中的反斜杠。

注意:如果r"C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin%PATH%中,那么您可以使用p=Popen("bq")。请参阅具有冲突可执行文件/路径的Popen

注意:如果实际的< code>bq文件名以< code >结尾。cmd正如@Antonio建议的那样(如链接中所述)< code>Popen()使用的< code > CreateProcess() Windows函数将找不到它,除非您显式指定文件扩展名。如果使用shell(< code > cmd . exe );它使用不同的规则(例如,如链接中所述枚举< code>%PATHEXT%,因此,即使您只给出< code>bq(假设< code >),它也可能找到< code>bq.cmd。cmd位于< code>%PATHEXT%中。

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

dir是一个内部shell命令。除非有其他<code>dir</code>程序;如果没有启动cmd的shell=True,它将无法工作。exe%COMSPEC%)。某些命令与<code>shell=True</code>一起工作并在没有它的情况下出现失败的原因是用于查找可执行文件的规则与<code>shell>False</code>情况(默认情况)不同。这些规则在链接中列举(请按照它阅读,我会等待。这是第四次,答案中提到了链接)。

叶稳
2023-03-14

错误消息显示,它找不到您指定的可执行文件。这很可能是由使用反斜杠 (\) 引起的。反斜杠对 Python 字符串中的字符进行转义。可以将 \ 替换为 \\ 或 替换为 /。此外,您应该添加文件扩展名.cmd。试试这个:

p = subprocess.Popen(["C:/Program Files/Google/Cloud SDK/google-cloud-sdk/bin/bq.cmd"])
梁丘钊
2023-03-14

使用其中之一:

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 的谷歌云 SDK 中的 bq 可执行文件称为 bq.cmd。从命令行调用它时,cmd将自动查看.cmd扩展名,而python解释器则不会。

 类似资料:
  • 我已经在Windows7机器上安装了msysGit 1.7.10。我需要知道的是我是否还可以从命令行使用Git? 当我现在在命令行中尝试命令时,我看到: “git”不能识别为内部或外部命令、可操作程序或批处理文件。 有什么方法可以启用Git命令行吗?

  • 文件的内容如下:

  • 我目前正在尝试学习如何使用PhoneGap为android手机开发应用程序。我得到了这本名为《PhoneGap 2x移动应用程序开发》的书。这本书真的很好,不言自明,但我的问题是,当作者想通过命令行创建d项目时,他使用的是Unix命令,因为他运行的是Unix PC。我运行的是Windows,使用CMD来遵循他的命令对我来说有点难,因为我不理解他的所有命令。 他写道: 有人能告诉我如何在window

  • 如果我执行plink命令 当提示输入密码时,我将获得 Sudo:没有tty存在,也没有指定askpass程序 Sudo:3次错误的密码尝试 如何从执行sudo?或者有其他选择吗?

  • 工欲善其事,必先利其器。学好SQLite的命令行工具,对于我们学习SQLite本身而言是非常非常有帮助的。最基本的一条就是,它让我们学习SQLite的过程更加轻松愉快。言归正传吧,在SQLite的官方下载网站,提供了支持多个平台的命令行工具,使用该工具我们可以完成大多数常用的SQLite操作,就像sqlplus之于Oracle。以下列表给出了该工具的内置命令: 命令名 命令说明 .help 列出所

  • 命令行工具 meteor help 获取 meteor 命令行使用帮助。运行 meteor help 会列出meteor所有命令。运行meteor help &lt;command&gt;会打印出关于meteor &lt;command&gt;的详细帮助。 meteor create &lt;name&gt; 创建一个名为&lt;name&gt;的子目录,并在里面新建一个Meteor应用。 met