我需要从一个Python脚本中调用make(构建makefile),这个目录与我所在的目录不同。如果我这么做:
build_ret = subprocess.Popen("../dir1/dir2/dir3/make",
shell = True, stdout = subprocess.PIPE)
我得到以下信息: /bin/sh:../dir1/dir2/dir3/make:没有这样的文件或目录
我试过:
build_ret = subprocess.Popen("(cd ../dir1/dir2/dir3/; make)",
shell = True, stdout = subprocess.PIPE)
但是make命令被忽略。我甚至没有收到“没什么可建”的信息。
我也试过用“交流”,但没有成功。这是在Red Hat Linux上运行的。
我同意@Philipp使用
cwd
的解决方案,但作为补充说明,您也可以使用-C
选项来:-C目录,--目录=目录
使用
cwd
参数,并使用Popen
的列表形式:调用shell几乎从来都不是必需的,而且由于涉及到额外的复杂性,可能会导致问题。
尝试使用完整路径,可以通过调用
为了找到路:
您将在os.path module中找到相当多的路径操纵
相关问题 更多 >
编程相关推荐