我在使用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目录中包含二进制文件的计算机上运行相关问题 更多 >
编程相关推荐