繁体   English   中英

使用 subprocess.run 中的“./”运行二进制文件

[英]Running binary with “./” from subprocess.run

我在使用subprocess.run运行一些二进制文件时遇到了一些问题

我在/tools有一个二进制文件,让我们调用二进制program 所以我需要调用/tools/program

我尝试的每个选项,子进程都显示该文件不存在。 我尝试了以下方法。

ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
TOOL_DIR = ROOT_DIR + '/tools/program'

# All of the following return error not found
program_subprocess = subprocess.run(['./'+TOOL_DIR])
program_subprocess = subprocess.run(['./"'+TOOL_DIR+'"'])
# Tried without the /, cause TOOL_DIR has a slash at the start
program_subprocess = subprocess.run(['.'+TOOL_DIR])

关于如何使用subprocess.run运行二进制文件的任何想法./

编辑:也试过

subprocess.run([./\"+TOOL_DIR+'\"'])

运行subprocess进程时,操作系统必须以某种方式找到可执行文件。 通常,可执行文件已安装,可以在PATH中找到,您只需使用程序名称 - subprocess.run(["program"])

在您的情况下,您似乎知道可执行文件的绝对路径,因此您可以使用它 - subprocess.run(["/tools/program"]) 缺点是您的脚本只能在 /tools 目录中有二进制文件的机器上运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM