我需要从一个Python脚本中调用make(构build一个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)",stdout = subprocess.PIPE)
但make命令被忽略。 我甚至没有得到“没有build立”的消息。
如何强制我的应用程序只能打开一个exe文件? qt,linux
如何从Pacman / Yaourtsearch返回包列表
在linux中创build一个新的信号
linux pyodbc freeTDS mssql服务器在一段时间后停止工作
Netcat进入apache密码保护的目录
我也尝试使用“沟通”,但没有成功。 这在Red Hat Linux上运行。
Linux的CP与正则expression式
如何在Python中正确实现基于进程的锁?
UUID生成器问题
我会和@ Philipp的使用cwd的解决方案一起使用,但是作为一个附注,你也可以使用-C选项来做:
make -C ../dir1/dir2/dir3/make
-C dir ,–directory = dir
在读取makefile或执行其他任何操作之前,转到目录dir 。 如果指定了多个-C选项,则每个选项都相对于前一个选项进行解释: -C / -C etc等同于-C /etc 这通常与make的递归调用一起使用。
使用cwd参数,并使用Popen的列表形式:
subprocess.Popen(["make"],stdout=subprocess.PIPE,cwd="../dir1/dir2/dir3")
调用shell几乎是不需要的,并且由于涉及到额外的复杂性而可能引起问题。
sys.argv[0]
刚刚得到的路径:
os.path.dirname(sys.argv[0])
你会在os.path模块中找到相当多的路径操作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。